PDFium Delphi Component Docs

SaveAsFlateRecompressed Méthode

Composant: TPdf  ·  Unit: PDFium
Réécrit le document et ré-encode les flux FlateDecode éligibles à la compression maximale, remplaçant un flux uniquement lorsque l’économie d’octets mesurée dépasse un seuil de l’appelant

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 écrit d’abord une copie non incrémentale du document en mémoire courant, puis l’enveloppe effectue une marche d’accessibilité à l’échelle du document exactement comme SaveAsReachable

Chaque flux FlateDecode accessible est décodé avec PdfInflate et ré-encodé avec DeflateCompress à la compression maximale ; seuls les flux dont l’économie mesurée dépasse à la fois MinSavingBytes et MinSavingRatio sont remplacés

Les numéros d’objet et générations restent stables, donc seules les charges utiles de flux recompressées et leurs valeurs /Length directes changent ; chaque référence croisée survivante reste valide sans renumérotation

La sortie est une seule révision classique avec le trailer reconstruit portant /Root, /Info et /ID en avant

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