THotPDF.CompactFontSubsetting

THotPDF

 

プロパティ  EnableFontSubsetting  FontEmbedding

フォントサブセットが保持グリフを振り直すかどうかを制御します。振り直すと、サブセットはかなりのサイズで小さくなります

 

Delphi syntax:

property CompactFontSubsetting: Boolean;

 

C++ syntax:

__property bool CompactFontSubsetting;

 

説明

コンパクトなフォントサブセットを構築するには、BeginDoc の前に CompactFontSubsetting を true に設定します。通常のサブセットは元フォントのグリフ番号をそのまま保持します。未使用グリフは空にされるものの、フォントはすべてのグリフを宣言し続け、各グリフについて位置と幅のエントリを担います。2 万〜3 万グリフを持つ CJK フォントでは、ページに 2 文字しか表示していなくても、圧縮前の時点でこのテーブル群だけで 200 KB を超えます

 

コンパクトなサブセットは、保持するグリフを密な範囲に振り直し、そのグリフだけを対象にグリフテーブルを再構築します。ページコンテンツは元のグリフ番号を CID としてそのまま示し、明示的な /CIDToGIDMap ストリーム(ISO 32000-1 9.7.4.2)がそれらを振り直されたグリフへマップするため、テキスト、幅、テキスト抽出は変わりません。SimSun の漢字 2 文字のフォントデータは、通常のサブセットでは約 25 KB になりますが、コンパクトなサブセットでは約 3 KB で済みます

 

このプロパティの対象は、EnableFontSubsetting が有効なときに Type 0 フォントとして書き出される TrueType フォントと、RegisterUnicodeTTF で登録するフォント(常にサブセット化されます)です。OpenType-CFF フォントは通常のサブセットを保ちます。フォントに対してコンパクトなサブセットを構築できない場合、HotPDF は通常のサブセットへフォールバックします

 

このプロパティは既定でオフのため、既存の出力は変わりません。PDF/A では、登録したフォントは常にコンパクトなサブセットになります。コンパクトなサブセットが向いているのは最終出力です。同じフォントで後からドキュメントへ追加したテキストには新しいサブセットが必要になり、後でマージしたドキュメント間では同じフォントのサブセットを共有できなくなるからです

 

関連項目: EnableFontSubsetting, FontEmbedding, RegisterUnicodeTTF