BI/ID/EI em um image XObject reutilizável e substituindo cada bloco inline por um 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 fluxo de conteúdo de página é decodificado e examinado em busca de imagens inline; todo bloco BI/ID/EI é extraído para um novo objeto indireto image XObject
As abreviações do dicionário de imagem inline (/W, /H, /BPC, /CS, /F, abreviações de espaço de cor e de valor de filtro) são expandidas para seus nomes completos de image XObject, de modo que o objeto extraído fique em conformidade com os padrões
O bloco inline no fluxo de conteúdo é substituído por /ImN Do, o dicionário /Resources /XObject da página é atualizado com a nova referência e o fluxo de conteúdo regravado é comprimido com Flate
Os números e gerações de objeto dos objetos existentes permanecem estáveis; novos image XObjects e fluxos de conteúdo são anexados
TPdfInlineImageExternaliseOptions.SkipUnsafePages deixa inalteradas as páginas cujos limites de imagem inline não podem ser determinados, em vez de abortar o salvamentoTPdfInlineImageExternaliseReport relata contagens de externalizadas, ignoradas e com falha, além da contagem de XObjects criados/Resources indireto ou conteúdo não resolvível são ignoradasAllowSignedDocument seja habilitado explicitamente, porque uma regravação completa invalida os intervalos de bytes das assinaturas existentes
Options.SkipUnsafePages:= True;
Pdf.SaveAsInlineImagesExternalised('externalised.pdf', Options, Report);
WriteLn('externalised ', Report.ExternalisedCount, ' inline images');