PDFium Delphi Component Docs

SaveAsFlateRecompressed Método

Componente: TPdf  ·  Unidad: PDFium
Reescribe el documento y recodifica los streams FlateDecode elegibles con compresión máxima, reemplazando un stream solo cuando el ahorro de bytes medido supera un umbral definido por el llamador

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 escribe primero una copia no incremental del documento actual en memoria y luego el contenedor realiza un recorrido de alcanzabilidad sobre todo el documento, exactamente como SaveAsReachable

Cada stream FlateDecode alcanzable se decodifica con PdfInflate y se recodifica con DeflateCompress a compresión máxima; solo se reemplazan los streams cuyo ahorro medido supera tanto MinSavingBytes como MinSavingRatio

Los números y generaciones de objeto permanecen estables, de modo que solo cambian las cargas útiles de los streams recomprimidos y sus valores /Length directos; toda referencia cruzada superviviente sigue siendo válida sin renumeración

La salida es una única revisión clásica con el trailer reconstruido propagando /Root, /Info e /ID

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