/Info trailerufunction SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
PDFium nejprve zapíše nepřírůstkovou kopii aktuálního dokumentu v paměti, takže přepis začíná od kanonických bajtů
Graf objektů je poté rozparsován a celodokumentová procházka dosažitelnosti z katalogu shromáždí každý přeživší nepřímý objekt, včetně stromu stránek, zdrojů stránek, písem, obrázků, formulářových XObjects, AcroForm, stromu struktury, osnov, stromů názvů, volitelného obsahu, metadat, výstupních záměrů a přidružených souborů
Objekty ponechané nedosažitelné přírůstkovými aktualizacemi, sloučením stránek nebo opravenými uloženími jsou zahozeny a výstup je jediná klasická revize bez objektových proudů a bez proudu křížových odkazů
Čísla objektů a generace jsou zachovány, takže každý přeživší křížový odkaz zůstává platný bez přečíslování; nedosažitelné objekty se stanou volnými položkami v znovu sestavené klasické tabulce křížových odkazů
Znovu sestavený trailer přenáší /Root, /Info a /ID dále pouze tehdy, když odkazované objekty přežily zametení
TPdfPruneReport hlásí počty zachovaných a vyřazených nepřímých objektů, zdrojové a výstupní velikosti bajtů a strukturovanou zprávu o selháníAllowSignedDocument výslovně povoleno, protože úplný přepis zneplatní stávající rozsahy bajtů podpisů
Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Zachováno ', Report.KeptObjectCount, ' vyřazeno ', Report.PrunedObjectCount);