PDFium Delphi Component Docs

Método SaveAsFlateRecompressed

Componente: TPdf  ·  Unidade: PDFium
Reescreve o documento e reencoda os streams FlateDecode elegíveis com compressão máxima, substituindo um stream apenas quando a poupança medida em bytes ultrapassa um limiar definido pelo chamador

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

O PDFium escreve primeiro uma cópia não incremental do documento atual em memória; de seguida, o wrapper efetua uma travessia de alcançabilidade a todo o documento exatamente como SaveAsReachable

Cada stream FlateDecode alcançável é descodificado com PdfInflate e reencodado com DeflateCompress à compressão máxima; só os streams cuja poupança medida ultrapassa simultaneamente MinSavingBytes e MinSavingRatio são substituídos

Os números e gerações de objeto mantêm-se estáveis, pelo que só as cargas de stream recomprimidas e os respetivos valores diretos de /Length mudam; cada cross-reference sobrevivente continua válida sem renumeração

A saída é uma única revisão clássica com o trailer reconstruído a transportar /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