CompressContent
文書プロパティ
説明
現在選択されているドキュメントの全ページコンテンツストリームを圧縮します。Flate(zlib)アルゴリズムを使用するため、ドキュメント保存時に生成ストリームには /FlateDecode フィルターが設定されます。すでに圧縮済みのストリームは変更されません
Windows では、同梱の zlib-ng バックエンドがzlib 互換モードで使用されます。Win64 ビルドは bcc64x zlib-ng ランタイム SIMD オブジェクトセットをリンクし、Win32 は互換性重視の汎用オブジェクトセットを保持します。既存の Delphi、ActiveX、DLL、C++Builder コードにソース変更は不要です
構文
Delphi
Function TPDFlib.CompressContent: Integer;
ActiveX
Function PDFlib::CompressContent() As Long
DLL
int DLCompressContent(int InstanceID);
戻り値
| 0 | ドキュメントが開いていないか、圧縮に失敗しました |
|---|---|
| 1 | ページコンテンツストリームを正常に圧縮しました |
備考
これはドキュメント全体に対する処理です。現在選択しているページだけを圧縮する場合は CompressPage を使用します。新しく追加された画像とフォントを圧縮して格納するかどうかを制御するには、それぞれ CompressImages と CompressFonts を使用します
新しく構築したドキュメントを縮小する場合は、SaveToFile の前にこれを 1 回実行します。通常、テキスト中心のページでは大幅に削減でき、事前圧縮済み画像データが大部分を占めるページでは効果はわずかです
例
// Build a document, compress everything, then save
PDF.NewDocument;
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.PrintText(50, 750, 'Compressed document');
PDF.CompressContent; // page streams -> /FlateDecode
PDF.CompressImages(1); // also flate-encode any subsequent images
PDF.SaveToFile('compressed.pdf');