PDFium Delphi Component Docs

SaveAsFlateRecompressed メソッド

コンポーネント: TPdf  ·  ユニット: PDFium
ドキュメントを書き換え、対象の FlateDecode ストリームを最大圧縮で再エンコードし、測定されたバイト節約が呼び出し側のしきい値を超える場合のみストリームを置き換えます

構文

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;

説明

PDFium はまず現在のメモリ内ドキュメントの非増分コピーを書き、次にラッパーが SaveAsReachable とまったく同じようにドキュメント全体の到達可能性走査を実行します

各到達可能 FlateDecode ストリームは PdfInflate でデコードされ、DeflateCompress で最大圧縮で再エンコードされます。測定された節約が MinSavingBytes と MinSavingRatio の両方を超えるストリームのみが置き換えられます

オブジェクト番号と世代は安定したままなので、再圧縮されたストリームペイロードとその直接の /Length 値のみが変わります。生存クロスリファレンスは番号を振り直さずに有効なままです

出力は単一のクラシックリビジョンで、再構築されたトレーラーは /Root、/Info、/ID を引き継ぎます

ポリシーと制限

例

Options.MinSavingBytes:= 64;
Options.MinSavingRatio:= 0.1;
Pdf.SaveAsFlateRecompressed('recompressed.pdf', Options, Report);
WriteLn('recompressed ', Report.RecompressedCount, ' streams');

関連項目

SaveAsReachable, SaveAsDeduplicated, SaveAs