PDFium Delphi Component Docs

SaveAsReachable Methode

Komponente: TPdf  ·  Unit: PDFium
Schreibt das Dokument als einzelne saubere Revision neu, die nur die indirekten Objekte behält, die vom Katalog und vom /Info-Wörterbuch des Trailers erreichbar sind.

Syntax

function SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;

function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;

Description

PDFium schreibt zunächst eine nicht-inkrementelle Kopie des aktuellen In-Memory-Dokuments, damit die Neuschreibung von kanonischen Bytes ausgeht

Der Objektgraph wird dann geparst, und ein dokumentweiter Erreichbarkeits-Durchlauf vom Katalog sammelt jedes überlebende indirekte Objekt, einschließlich Seitenbaum, Seitenressourcen, Schriften, Bilder, Form-XObjects, AcroForm, Strukturbaum, Gliederungen, Namensbäumen, Optional Content, Metadaten, OutputIntents und zugehörigen Dateien

Objekte, die durch inkrementelle Aktualisierungen, Seitenzusammenführungen oder reparierte Speichervorgänge unerreichbar geworden sind, werden verworfen, und die Ausgabe ist eine einzelne klassische Revision ohne Objekt-Streams und ohne Querverweis-Stream

Objektnummern und Generationen bleiben erhalten, daher bleibt jeder überlebende Querverweis ohne Neunummerierung gültig; unerreichbare Objekte werden zu freien Einträgen in der neu aufgebauten klassischen Querverweistabelle

Der neu aufgebaute Trailer führt /Root, /Info und /ID nur fort, wenn die referenzierten Objekte den Durchlauf überlebt haben

Policies and limits

Example

Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);

See Also

SaveAs, SaveAsRepaired, SaveAsNormalizedContent