BI/ID/EI-Inline-Bild in ein wiederverwendbares Bild-XObject und ersetzt jeden Inline-Block durch einen /ImN Do-Operator.function SaveAsInlineImagesExternalised(Stream: TStream; const Options: TPdfInlineImageExternaliseOptions; out Report: TPdfInlineImageExternaliseReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsInlineImagesExternalised(const FileName: string; const Options: TPdfInlineImageExternaliseOptions; out Report: TPdfInlineImageExternaliseReport; AllowSignedDocument: Boolean = False): Boolean;
Jeder Seiten-Content-Stream wird dekodiert und auf Inline-Bilder gescannt; jeder BI/ID/EI-Block wird in ein neues indirektes Bild-XObject-Objekt extrahiert
Inline-Bild-Wörterbuch-Abkürzungen (/W, /H, /BPC, /CS, /F, Farbraum- und Filterwert-Abkürzungen) werden zu ihren vollen Bild-XObject-Namen erweitert, damit das extrahierte Objekt standardkonform ist
Der Inline-Block im Content-Stream wird durch /ImN Do ersetzt, das /Resources /XObject-Wörterbuch der Seite wird um die neue Referenz aktualisiert, und der neu geschriebene Content-Stream wird Flate-komprimiert
Objektnummern und Generationen vorhandener Objekte bleiben stabil; neue Bild-XObjects und Content-Streams werden angehängt
TPdfInlineImageExternaliseOptions.SkipUnsafePages lässt Seiten, deren Inline-Bild-Grenzen nicht bestimmbar sind, unverändert, statt das Speichern abzubrechenTPdfInlineImageExternaliseReport meldet externalisierte, übersprungene und fehlgeschlagene Zahlen sowie die Anzahl erstellter XObjects/Resources oder nicht auflösbarem Inhalt werden übersprungenAllowSignedDocument nicht ausdrücklich aktiviert ist, weil eine vollständige Neuschreibung vorhandene Signatur-Bytebereiche ungültig macht
Options.SkipUnsafePages:= True;
Pdf.SaveAsInlineImagesExternalised('externalised.pdf', Options, Report);
WriteLn('externalised ', Report.ExternalisedCount, ' inline images');