PDFium Delphi Component Docs

SaveAsFlateRecompressed Método

Component: TPdf  ·  Unit: PDFium
Reescrive el documento y recodifica los flujos FlateDecode elegibles a compresión máxima, reemplazando un flujo solo cuando el ahorro de bytes medido supera un umbral del 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 primero escribe una copia no incremental del documento en memoria actual, luego el envoltorio realiza un recorrido de alcanzabilidad en todo el documento exactamente como SaveAsReachable

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

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

La salida es una única revisión clásica con el trailer reconstruido llevando /Root, /Info y /ID hacia adelante

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