/Infofunction 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، وشجرة البنية، والمخططات، وأشجار الأسماء، والمحتوى الاختياري، والبيانات الوصفية، ونوايا الإخراج، والملفات المرتبطة
تُسقط الكائنات التي تركتها التحديثات التزايدية أو عمليات دمج الصفحات أو الحفظ المُصلَح غير قابلة للوصول، ويكون الإخراج مراجعة كلاسيكية واحدة دون تيارات كائنات ودون تيار مرجع متبادل
تُحفظ أرقام الكائنات والأجيال، بحيث يظل كل مرجع متبادل ناجٍ صالحًا دون إعادة ترقيم؛ وتصبح الكائنات غير القابلة للوصول مدخلات حرة في جدول المرجع المتبادل الكلاسيكي المعاد بناؤه
يحمل مقطع الذيل المعاد بناؤه /Root و /Info و /ID للأمام فقط عندما نجت الكائنات المشار إليها من المسح
TPdfPruneReport عددي الكائنات غير المباشرة المحتفظ بها والمشذَّبة، وحجمي بايتات المصدر والإخراج، ورسالة فشل منظمةAllowSignedDocument صراحةً لأن إعادة الكتابة الكاملة تبطل نطاقات بايتات التوقيع الموجودة
Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);