/Infofunction SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
PDFium prvo zapisuje neinkrementalnu kopiju trenutačnog memorijskog dokumenta kako bi prepisivanje krenulo od kanonskih bajtova
Zatim se raščlanjuje graf objekata te obilazak dostupnosti kroz cijeli dokument iz kataloga prikuplja svaki preživjeli neizravni objekt, uključujući stablo stranica, resurse stranica, fontove, slike, formulare XObject, AcroForm, stablo strukture, outlines, imenska stabla, neobavezni sadržaj, metapodatke, OutputIntent i pridružene datoteke
Objekti koje su inkrementalna ažuriranja, spajanja stranica ili popravljena spremanja učinila nedostupnima odbacuju se, a izlaz je jedna klasična revizija bez tokova objekata i bez toka unakrsnih referenci
Brojevi objekata i generacije čuvaju se, pa svaka preživjela unakrsna referenca ostaje valjana bez prenumeriranja; nedostupni objekti postaju slobodni unosi u ponovno izgrađenoj klasičnoj tablici unakrsnih referenci
Ponovno izgrađeni trailer prenosi /Root, /Info i /ID samo kad su referencirani objekti preživjeli čišćenje
TPdfPruneReport izvješćuje o broju zadržanih i orezanih neizravnih objekata, veličinama izvora i izlaza u bajtovima te strukturiranoj poruci o neuspjehuAllowSignedDocument nije izričito omogućen, jer potpuno prepisivanje poništava postojeće raspone bajtova potpisa
Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);