PDFium Delphi Component Docs

SaveAsFlateRecompressed Metodo

Componente: TPdf  ·  Unità: PDFium
Riscrive il documento e ri-codifica i flussi FlateDecode idonei alla massima compressione, sostituendo un flusso solo quando il risparmio di byte misurato supera una soglia del chiamante

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 scrive prima una copia non incrementale del documento corrente in memoria, poi il wrapper esegue una camminata di raggiungibilità a livello di documento esattamente come SaveAsReachable

Ogni flusso FlateDecode raggiungibile viene decodificato con PdfInflate e ri-codificato con DeflateCompress alla massima compressione; solo i flussi il cui risparmio misurato supera sia MinSavingBytes sia MinSavingRatio vengono sostituiti

I numeri e le generazioni degli oggetti restano stabili, così cambiano solo i payload dei flussi ricompressi e i loro valori /Length diretti; ogni riferimento incrociato sopravvissuto resta valido senza rinumerazione

L'output è una singola revisione classica con il trailer ricostruito che trasporta in avanti /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