BI/ID/EI do opakovaně použitelného obrazového XObject a nahradí každý inline blok operátorem /ImN Dofunction 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;
Každý obsahový proud stránky je dekódován a skenován na inline obrazy; každý blok BI/ID/EI je extrahován do nového nepřímého objektu obrazového XObject
Zkratky slovníku inline obrazu (/W, /H, /BPC, /CS, /F, zkratky barevného prostoru a hodnoty filtru) jsou rozšířeny na jejich plné názvy image-XObject, aby byl extrahovaný objekt v souladu s normami
Inline blok v obsahovém proudu je nahrazen /ImN Do, slovník /Resources /XObject stránky je aktualizován novým odkazem a přepsaný obsahový proud je Flate-komprimován
Čísla objektů a generace existujících objektů zůstávají stabilní; nové obrazové XObjects a obsahové proudy jsou připojeny
TPdfInlineImageExternaliseOptions.SkipUnsafePages ponechá stránky, jejichž hranice inline obrazů nelze určit, beze změny, místo aby přerušil ukládáníTPdfInlineImageExternaliseReport hlásí počty externalizovaných, přeskočených a neúspěšných položek plus počet vytvořených XObjects/Resources nebo neřešitelným obsahem jsou přeskočenyAllowSignedDocument výslovně povoleno, protože úplný přepis zneplatní stávající rozsahy bajtů podpisů
Options.SkipUnsafePages:= True;
Pdf.SaveAsInlineImagesExternalised('externalised.pdf', Options, Report);
WriteLn('externalizováno ', Report.ExternalisedCount, ' inline obrazů');