PDFium Delphi Component Docs

SaveAsDeduplicated Methode

Komponente: TPdf  ·  Unit: PDFium
Schreibt das Dokument als einzelne saubere Revision neu, die zunächst unerreichbare Objekte entfernt und anschließend kompatible Schriften, Bilder und Form-XObjects auf einen gemeinsamen Vertreter zusammenführt.

Syntax

function SaveAsDeduplicated(Stream: TStream; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;

function SaveAsDeduplicated(const FileName: string; out Report: TPdfDedupReport; AllowSignedDocument: Boolean = False): Boolean;

Description

PDFium schreibt zunächst eine nicht-inkrementelle Kopie des aktuellen In-Memory-Dokuments, dann führt der Wrapper einen dokumentweiten Erreichbarkeits-Durchlauf durch und verwirft jedes unerreichbare Objekt, genau wie SaveAsReachable

Schriften, Bilder und Form-XObjects werden anschließend mit Fingerabdrücken versehen: Jedes Kandidaten-Wörterbuch, sein vollständiger erreichbarer Teilgraph und seine rohe Stream-Nutzlast werden rekursiv gehasht, sodass Duplikate nur dann zusammengeführt werden, wenn ihr gesamter Inhalt identisch ist

Jeder Querverweis, der auf ein zusammengeführtes Duplikat zeigte, wird auf den überlebenden Vertreter umgeschrieben, und Objektnummern und Generationen bleiben stabil, sodass jeder überlebende Querverweis gültig bleibt

Die Ausgabe ist eine einzelne klassische Revision ohne Objekt-Streams und ohne Querverweis-Stream, und der neu aufgebaute Trailer führt /Root, /Info und /ID fort

Policies and limits

Example

Pdf.SaveAsDeduplicated('deduplicated.pdf', Report);
WriteLn('merged ', Report.MergedImageCount, ' images');

See Also

SaveAsReachable, SaveAs, SaveAsNormalizedContent