/Info-dictionaryetfunction SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
PDFium skriver først en ikke-inkrementel kopi af det aktuelle in-memory-dokument, så omskrivningen starter fra kanoniske bytes
Objektgrafen parses derefter, og en dokumentbred reachability-gennemgang fra kataloget indsamler hvert overlevende indirekte objekt, inklusive sidetræet, sideressourcer, skrifttyper, billeder, form-XObjects, AcroForm, strukturtræ, outlines, navnetræer, optional content, metadata, output intents og associerede filer
Objekter, der efterlades uopnåelige af inkrementelle opdateringer, sidefusioner eller reparerede gems, droppes, og outputtet er en enkelt klassisk revision uden object-streams og uden cross-reference-stream
Objektnumre og generationer bevares, så hver overlevende cross-reference forbliver gyldig uden omnummerering; uopnåelige objekter bliver frie poster i den genopbyggede klassiske cross-reference-tabel
Den genopbyggede trailer fører /Root, /Info og /ID videre, kun når de refererede objekter overlevede gennemgangen
TPdfPruneReport reports the kept and pruned indirect object counts, the source and output byte sizes, and a structured failure messageAllowSignedDocument is explicitly enabled because a full rewrite invalidates existing signature byte ranges
Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);