/Info trailer را نگه میداردfunction SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;
PDFium اول نسخهٔ غیرافزایشی سند درونحافظهٔ جاری را مینویسد تا بازنویسی از بایتهای متعارف شروع شود
سپس گراف شیء تجزیه و پیمایش دسترسپذیری سراسر سند از فهرست هر شیء غیرمستقیم بازمانده را جمع میکند، از جمله درخت صفحه، منابع صفحه، قلمها، تصاویر، فرم XObjectها، AcroForm، درخت ساختار، خطوط کلی، درختهای نام، محتوای اختیاری، فراداده، مقاصد خروجی و فایلهای همراه
اشیایی که توسط بهروزرسانیهای افزایشی، ادغام صفحات یا ذخیرههای تعمیری غیرقابلدسترس ماندهاند حذف میشوند و خروجی یک بازبینی کلاسیک واحد بدون جریان شیء و بدون جریان ارجاع متقاطع است
شمارههای شیء و نسلها حفظ میشوند، بنابراین هر ارجاع متقاطع بازمانده بدون شمارهگذاری مجدد معتبر میماند؛ اشیاء غیرقابلدسترس در جدول ارجاع متقاطع کلاسیک بازسازیشده مدخل آزاد میشوند
trailer بازسازیشده /Root، /Info و /ID را فقط وقتی اشیاء ارجاعشده از جارو جان سالم به در بردند جلو میبرد
TPdfPruneReport شمارش اشیاء غیرمستقیم نگهداشته و هرسشده، اندازههای بایت منبع و خروجی و پیام شکست ساختاریافته را گزارش میکندAllowSignedDocument صریح فعال شود چون بازنویسی کامل محدودههای بایت امضای موجود را بیاعتبار میکند
Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);