PDFium Delphi Component Docs

Método SaveAsReachable

Componente: TPdf  ·  Unidade: PDFium
Reescreve o documento como uma única revisão limpa que mantém apenas os objetos indiretos alcançáveis a partir do catálogo e do dicionário /Info do trailer

Syntax

function SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;

function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;

Description

O PDFium escreve primeiro uma cópia não incremental do documento atual em memória, para que a reescrita comece a partir de bytes canónicos

O grafo de objetos é depois analisado e uma travessia de alcançabilidade a todo o documento a partir do catálogo recolhe todos os objetos indiretos sobreviventes, incluindo a árvore de páginas, os recursos de página, fontes, imagens, form XObjects, AcroForm, a estrutura em árvore, os outlines, os name trees, o optional content, os metadados, os output intents e os ficheiros associados

Os objetos que atualizações incrementais, fusões de páginas ou gravações reparadas deixaram inalcançáveis são descartados, e a saída é uma única revisão clássica sem object streams e sem cross-reference stream

Os números e gerações de objeto são preservados, pelo que cada cross-reference sobrevivente continua válida sem renumeração; os objetos inalcançáveis tornam-se entradas livres na tabela de cross-reference clássica reconstruída

O trailer reconstruído transporta /Root, /Info e /ID apenas quando os objetos referenciados sobreviveram à varredura

Policies and limits

Example

Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);

See Also

SaveAs, SaveAsRepaired, SaveAsNormalizedContent