/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 upisuje nepriraštajnu kopiju trenutnog dokumenta u memoriji kako bi prepis počeo od kanonskih bajtova
Zatim se raščlanjuje graf objekata i obilazak dostupnosti kroz ceo dokument, počevši od kataloga, prikuplja svaki preživeli indirektni objekat, uključujući stablo stranica, resurse stranica, fontove, slike, form XObjects, AcroForm, strukturno stablo, konture, imenovana stabla, opcioni sadržaj, metapodatke, output intents i pridružene fajlove
Objekti koji su ostali nedostupni zbog priraštajnih ažuriranja, spajanja stranica ili popravljenih čuvanja se odbacuju, a izlaz je jedna klasična revizija bez objektnih tokova i bez toka unakrsnih referenci
Brojevi i generacije objekata se čuvaju, tako da svaka preživela unakrsna referenca ostaje validna bez ponovnog numerisanja; nedostupni objekti postaju slobodni unosi u ponovo izgrađenoj klasičnoj tabeli unakrsnih referenci
Ponovo izgrađeni trailer prenosi /Root, /Info i /ID samo kada su referencirani objekti preživeli čišćenje
TPdfPruneReport izveštava o broju zadržanih i orezanih indirektnih objekata, o veličini izvornih i izlaznih bajtova i o strukturiranoj poruci o neuspehuAllowSignedDocument nije izričito omogućen, jer pun prepis poništava postojeće opsege bajtova potpisa
Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);