PDFium Delphi Component Docs

Método SaveAsDeduplicated

Componente: TPdf  ·  Unidade: PDFium
Reescreve o documento como uma única revisão limpa que primeiro varre os objetos inalcançáveis e depois funde fontes, imagens e form XObjects compatíveis num único representante partilhado

Syntax

function SaveAsDeduplicated(Stream: TStream; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;

function SaveAsDeduplicated(const FileName: string; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;

Description

O PDFium escreve primeiro uma cópia não incremental do documento atual em memória; de seguida, o wrapper efetua uma travessia de alcançabilidade a todo o documento e descarta todos os objetos inalcançáveis exatamente como SaveAsReachable

As fontes, imagens e form XObjects são depois alvo de fingerprinting: cada dicionário candidato, o seu subgrafo alcançável completo e a sua carga bruta de stream recebem hash recursivo, pelo que os duplicados só se fundem quando todo o seu conteúdo é idêntico

Cada cross-reference que apontava para um duplicado fundido é reescrita para o representante sobrevivente, e os números e gerações de objeto mantêm-se estáveis, para que cada cross-reference sobrevivente continue válida

A saída é uma única revisão clássica sem object streams e sem cross-reference stream, e o trailer reconstruído transporta /Root, /Info e /ID

Policies and limits

Example

Pdf.SaveAsDeduplicated('deduplicated.pdf', Report);
WriteLn('merged ', Report.MergedImageCount, ' images');

See Also

SaveAsReachable, SaveAs, SaveAsNormalizedContent