PDFium Delphi Component Docs

SaveAsFlateRecompressed Methode

Komponente: TPdf  ·  Unit: PDFium
Schreibt das Dokument neu und kodiert geeignete FlateDecode-Streams mit maximaler Kompression um, wobei ein Stream nur ersetzt wird, wenn die gemessene Byte-Einsparung eine Aufrufer-Schwelle überschreitet.

Syntax

function SaveAsFlateRecompressed(Stream: TStream; const Options: TPdfFlateRecompressOptions; out Report: TPdfFlateRecompressReport; AllowSignedDocument: Boolean = False): Boolean;

function SaveAsFlateRecompressed(const FileName: string; const Options: TPdfFlateRecompressOptions; out Report: TPdfFlateRecompressReport; 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, genau wie SaveAsReachable

Jeder erreichbare FlateDecode-Stream wird mit PdfInflate dekodiert und mit DeflateCompress bei maximaler Kompression neu kodiert; nur Streams, deren gemessene Einsparung sowohl MinSavingBytes als auch MinSavingRatio übertrifft, werden ersetzt

Objektnummern und Generationen bleiben stabil, daher ändern sich nur die neu komprimierten Stream-Nutzlasten und ihre direkten /Length-Werte; jeder überlebende Querverweis bleibt ohne Neunummerierung gültig

Die Ausgabe ist eine einzelne klassische Revision, deren neu aufgebauter Trailer /Root, /Info und /ID fortführt

Policies and limits

Example

Options.MinSavingBytes:= 64;
Options.MinSavingRatio:= 0.1;
Pdf.SaveAsFlateRecompressed('recompressed.pdf', Options, Report);
WriteLn('recompressed ', Report.RecompressedCount, ' streams');

See Also

SaveAsReachable, SaveAsDeduplicated, SaveAs