function SaveAsDeduplicated(Stream: TStream; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsDeduplicated(const FileName: string; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;
PDFium najprije zapisuje neinkrementalnu kopiju trenutnog dokumenta u memoriji, a zatim omotač izvodi šetnju dostižnosti kroz cijeli dokument i odbacuje svaki nedostupni objekt potpuno kao SaveAsReachable
Fontovi, slike i form XObjecti zatim se otiskuju: svaki rječnik kandidat, njegov potpuno dostižni podgraf i njegov sirovi tok tereta hashiraju se rekurzivno, pa se duplikati spajaju samo kada je njihov cijeli sadržaj identičan
Svaka unakrsna referenca koja je pokazivala na spojeni duplikat prepiše se na preživjelog predstavnika, a brojevi objekata i generacije ostaju stabilni tako da svaka preživjela unakrsna referenca ostaje valjana
Izlaz je jedna klasična revizija bez object streamova i bez toka unakrsnih referenci, a ponovno izgrađeni trailer prenosi /Root, /Info i /ID
TPdfDedupReport izvještava o broju zadržanih i orezanih objekata te o broju spojenih fontova, slika i form XObjecta po kategoriji, s veličinama izvora i izlaza u bajtovima i strukturiranom porukom o neuspjehuAllowSignedDocument nije izričito omogućen jer potpuno prepisivanje poništava postojeće raspone bajtova potpisa
Pdf.SaveAsDeduplicated('deduplicated.pdf', Report);
WriteLn('merged ', Report.MergedImageCount, ' images');