/Info של ה-trailerfunction SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
PDFium כותב תחילה עותק לא מצטבר של המסמך הנוכחי בזיכרון כך שהכתיבה מחדש מתחילה מבתים קנוניים
גרף האובייקטים מנותח אז והליכת השגה ברמת מסמך מהקטלוג אוספת כל אובייקט עקיף שורד, כולל עץ העמודים, משאבי עמוד, גופנים, תמונות, form XObjects, AcroForm, עץ מבנה, מתווים, עצי שמות, תוכן אופציונלי, מטה-נתונים, output intents וקבצים משויכים
אובייקטים שנותרו בלתי ניתנים להשגה על ידי עדכונים מצטברים, מיזוגי עמודים או שמירות מתוקנות מושלכים, והפלט הוא רוויזיה קלאסית יחידה ללא זרמי אובייקטים וללא זרם cross-reference
מספרי אובייקטים ודורות נשמרים, כך שכל הפניה צולבת שורדת נותרת תקפה ללא מספור מחדש; אובייקטים בלתי ניתנים להשגה הופכים לרשומות חופשיות בטבלת ה-cross-reference הקלאסית שנבנתה מחדש
ה-trailer שנבנה מחדש נושא את /Root, /Info ו-/ID קדימה רק כאשר האובייקטים המופנים שרדו את הסריקה
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);