PDFium Delphi Component Docs

SaveAsFlateRecompressed Método

Componente: TPdf  ·  Unidade: PDFium
Reescreve o documento e recodifica streams FlateDecode elegíveis com compressão máxima, substituindo um stream somente quando a economia de bytes medida supera um limite 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 primeiro grava uma cópia não incremental do documento atual em memória; em seguida o wrapper executa uma varredura de alcançabilidade em todo o documento exatamente como SaveAsReachable

Cada stream FlateDecode alcançável é decodificado com PdfInflate e recodificado com DeflateCompress em compressão máxima; somente streams cuja economia medida supera MinSavingBytes e MinSavingRatio são substituídos

Os números e gerações de objeto permanecem estáveis, portanto apenas as cargas de stream recomprimidas e seus valores diretos de /Length mudam; toda cross-reference sobrevivente continua válida sem renumeração

A saída é uma única revisão clássica com o trailer reconstruído carregando /Root, /Info e /ID para frente

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