function SaveAsDeduplicated(Stream: TStream; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsDeduplicated(const FileName: string; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;
PDFium nejprve zapíše nepřírůstkovou kopii aktuálního dokumentu v paměti a poté obálka provede celodokumentovou procházku dosažitelnosti a zahodí každý nedosažitelný objekt přesně jako SaveAsReachable
Písma, obrázky a formulářové XObjects jsou poté otisknuty: každý kandidátní slovník, jeho úplný dosažitelný podgraf a jeho surový obsah proudu jsou hashovány rekurzivně, takže duplikáty se sloučí pouze tehdy, když je celý jejich obsah identický
Každý křížový odkaz, který ukazoval na sloučený duplikát, je přepsán na přeživšího zástupce a čísla objektů a generace zůstávají stabilní, takže každý přeživší křížový odkaz zůstává platný
Výstup je jediná klasická revize bez objektových proudů a bez proudu křížových odkazů a znovu sestavený trailer přenáší /Root, /Info a /ID dále
TPdfDedupReport hlásí počty zachovaných a vyřazených objektů plus počty sloučených písem, obrázků a formulářových XObjects podle kategorie, se zdrojovými a výstupními velikostmi bajtů a strukturovanou zprávou o selháníAllowSignedDocument výslovně povoleno, protože úplný přepis zneplatní stávající rozsahy bajtů podpisů
Pdf.SaveAsDeduplicated('deduplicated.pdf', Report);
WriteLn('sloučeno ', Report.MergedImageCount, ' obrázků');