THotPDF.CompressDocument

THotPDF

 

プロパティ  CompactFontSubsetting  EnableFontSubsetting

ドキュメントを小さくする書き出し側のオプションをすべて、1 つのスイッチで有効にします

 

Delphi syntax:

property CompressDocument: Boolean;

 

C++ syntax:

__property bool CompressDocument;

 

説明

見た目を変えずに HotPDF が可能な限り小さい状態で次のドキュメントを書き出すには、BeginDoc の前に CompressDocument を true に設定します。そのドキュメントでは、BeginDoc が次を有効にします

  • ページコンテンツとその他のストリームの FlateDecode 圧縮(最大圧縮レベル)
  • クロスリファレンスストリームとオブジェクトストリームの併用。ほとんどのオブジェクトを圧縮コンテナへ格納します(ISO 32000-1 7.5.7 および 7.5.8)。コンテナ 1 本あたりのオブジェクト数は 100 ではなく最大 250 になります。数が少なく大きいコンテナのほうが圧縮効率がよいためです。ConfigureAdaptiveObjectStreamPacking で設定した上限は尊重されます
  • フォントサブセット化。コンパクトなフォントサブセットと組み合わせ、各埋め込みフォントはドキュメントが表示するグリフだけを保持します

オブジェクトストリームには PDF 1.5 が必要です。Version がそれより古い場合、バージョンがロックされていなければ PDF 1.5 に引き上げられます。PDF/A-1 出力は規格の要求どおり、従来型のクロスリファレンステーブルを保ちます

 

CompressDocument は、ユーザーが選んだ設定を変更しません。EndDoc はドキュメントの書き出し時に Compression、CompressionLevel、UseXRefStream、UseObjectStreams、EnableFontSubsetting、CompactFontSubsetting、コンテナあたりオブジェクト数の上限、バージョン引き上げの各値を元に戻すため、CompressDocument を使わない次のドキュメントは従来どおりに書き出されます。画像はそれぞれ固有の圧縮設定を保ち、再サンプリングや非可逆の再圧縮は一切行われません

 

このプロパティは既定でオフです。Arial と SimSun で英語と中国語を混在させた 3 ページのドキュメントは、約 10 MB から約 20 KB まで下がります。その大部分はフォントサブセット化によるものです。代償として、出力は後から編集しにくくなります。サブセットフォントはドキュメントが使わない文字を表示できず、圧縮されたオブジェクトストリームはテキストエディタでは読めません

 

例:

PDF.CompressDocument := True;
        PDF.BeginDoc;
        PDF.CurrentPage.SetFont('SimSun', [], 11);
        PDF.CurrentPage.TextOut(40, 80, 0, 'Compressed output');
        PDF.EndDoc;

 

関連項目: CompactFontSubsetting, EnableFontSubsetting, CompressLoadedDocument