PDFium Delphi Component Docs

SaveAsDeduplicated Método

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 em um único representante compartilhado

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 primeiro grava uma cópia não incremental do documento atual em memória; em seguida o wrapper executa uma varredura de alcançabilidade em todo o documento e descarta cada objeto inalcançável exatamente como SaveAsReachable

Fontes, imagens e form XObjects recebem então um fingerprint: cada dicionário candidato, seu subgrafo alcançável completo e sua carga bruta de stream são hash de forma recursiva, de modo que duplicatas só são fundidas quando todo o seu conteúdo é idêntico

Toda cross-reference que apontava para uma duplicata fundida é regravada para o representante sobrevivente, e os números e gerações de objeto permanecem estáveis, de modo que toda cross-reference sobrevivente continua válida

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

Policies and limits

Example

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

See Also

SaveAsReachable, SaveAs, SaveAsNormalizedContent