BI/ID/EI a un XObject de imagen reutilizable y reemplazando cada bloque en línea con un operador /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;
Cada flujo de contenido de página se decodifica y escanea en busca de imágenes en línea; cada bloque BI/ID/EI se extrae a un nuevo objeto indirecto XObject de imagen
Las abreviaturas de diccionario de imagen en línea (/W, /H, /BPC, /CS, /F, abreviaturas de espacio de color y valores de filtro) se expanden a sus nombres completos de XObject de imagen para que el objeto extraído sea conforme a los estándares
El bloque en línea del flujo de contenido se reemplaza por /ImN Do, el diccionario /Resources /XObject de la página se actualiza con la nueva referencia y el flujo de contenido reescrito se comprime con Flate
Los números de objeto y generaciones de los objetos existentes permanecen estables; los nuevos XObjects de imagen y flujos de contenido se anexan
TPdfInlineImageExternaliseOptions.SkipUnsafePages deja sin cambios las páginas cuyos límites de imagen en línea no se pueden determinar, en lugar de abortar el guardadoTPdfInlineImageExternaliseReport informa de los recuentos de externalizados, omitidos y fallidos, más el número de XObjects creados/Resources indirectos o contenido irresoluble se omitenAllowSignedDocument is explicitly enabled because a full rewrite invalidates existing signature byte ranges
Options.SkipUnsafePages:= True;
Pdf.SaveAsInlineImagesExternalised('externalised.pdf', Options, Report);
WriteLn('externalised ', Report.ExternalisedCount, ' inline images');