function SaveAsDeduplicated(Stream: TStream; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsDeduplicated(const FileName: string; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;
PDFium skriver først en ikke-inkrementel kopi af det aktuelle in-memory-dokument, derefter udfører wrapperen en dokumentbred reachability-gennemgang og dropper hvert uopnåeligt objekt nøjagtigt som SaveAsReachable
Skrifttyper, billeder og form-XObjects fingerprintes derefter: hver kandidatdictionary, dens fulde opnåelige subgraf og dens rå stream-payload hashes rekursivt, så dubletter kun fusioneres, når hele deres indhold er identisk
Hver cross-reference, der pegede på en fusioneret-væk-dublet, omskrives til den overlevende repræsentant, og objektnumre og generationer forbliver stabile, så hver overlevende cross-reference forbliver gyldig
Outputtet er en enkelt klassisk revision uden object-streams og uden cross-reference-stream, og den genopbyggede trailer fører /Root, /Info og /ID videre
TPdfDedupReport reports kept and pruned object counts plus per-category merged font, image, and form XObject counts, with source and output byte sizes and a structured failure messageAllowSignedDocument is explicitly enabled because a full rewrite invalidates existing signature byte ranges
Pdf.SaveAsDeduplicated('deduplicated.pdf', Report);
WriteLn('merged ', Report.MergedImageCount, ' images');