function SaveAsDeduplicated(Stream: TStream; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsDeduplicated(const FileName: string; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;
يكتب PDFium أولًا نسخة غير تزايدية من المستند الحالي في الذاكرة، ثم ينفذ المُغلِّف مسح قابلية وصول على مستوى المستند ويُسقط كل كائن غير قابل للوصول تمامًا مثل SaveAsReachable
ثم تُؤخذ بصمات الخطوط والصور و form XObjects: يُجزَّأ كل قاموس مرشح، ورسمه الفرعي الكامل القابل للوصول، وحمولة تياره الخام بشكل تكراري، بحيث تدمج التكرارات فقط عندما يكون محتواها بالكامل متطابقًا
يُعاد توجيه كل مرجع متبادل كان يشير إلى تكرار مدموج إلى الممثل الناجي، وتظل أرقام الكائنات والأجيال مستقرة بحيث يظل كل مرجع متبادل ناجٍ صالحًا
الإخراج مراجعة كلاسيكية واحدة دون تيارات كائنات ودون تيار مرجع متبادل، ويحمل مقطع الذيل المعاد بناؤه /Root و /Info و /ID للأمام
TPdfDedupReport عددي الكائنات المحتفظ بها والمشذَّبة إضافة إلى عدد الخطوط والصور و form XObjects المدمجة لكل فئة، مع حجمي بايتات المصدر والإخراج ورسالة فشل منظمةAllowSignedDocument صراحةً لأن إعادة الكتابة الكاملة تبطل نطاقات بايتات التوقيع الموجودة
Pdf.SaveAsDeduplicated('deduplicated.pdf', Report);
WriteLn('merged ', Report.MergedImageCount, ' images');