BI/ID/EI-inline-afbeelding te extraheren naar een herbruikbaar image XObject en elk inline-blok te vervangen door een /ImN Do-operatorfunction 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;
Elke pagina-contentstream wordt gedecodeerd en gescand op inline-afbeeldingen; elk BI/ID/EI-blok wordt geextraheerd naar een nieuw indirect image-XObject-object
Inline-afbeeldings-dictionary-afkortingen (/W, /H, /BPC, /CS, /F, afkortingen van kleurruimte- en filterwaarden) worden uitgebreid naar hun volledige image-XObject-namen zodat het geextraheerde object aan de standaarden voldoet
Het inline-blok in de contentstream wordt vervangen door /ImN Do, het /Resources /XObject-dictionary van de pagina wordt bijgewerkt met de nieuwe verwijzing en de herschreven contentstream wordt Flate-gecomprimeerd
Objectnummers en generaties van bestaande objecten blijven stabiel; nieuwe image XObjects en contentstreams worden toegevoegd
TPdfInlineImageExternaliseOptions.SkipUnsafePages laat pagina's waarvan de inline-afbeeldingsgrenzen niet kunnen worden bepaald onveranderd in plaats van de opslag af te brekenTPdfInlineImageExternaliseReport rapporteert geëxternaliseerde, overgeslagen en mislukte aantallen plus het aantal aangemaakte XObjects/Resources of onoplosbare content worden overgeslagenAllowSignedDocument expliciet is ingeschakeld, omdat een volledige herschrijving bestaande handtekeningbytebereiken ongeldig maakt
Options.SkipUnsafePages:= True;
Pdf.SaveAsInlineImagesExternalised('externalised.pdf', Options, Report);
WriteLn('externalised ', Report.ExternalisedCount, ' inline images');