|
CFF および Open型 フォント サブセット化関数
|
トップへ EnableFontSubsetting 目次 |
|
これらのユニットレベルの関数は、HotPDFの埋め込みフォントパイプラインで使用される、パブリックなCFF、Open型-CFF、およびsfntのフォント検査サーフェスを公開します。HotPDFには、より低レベルのフォント検査を必要とする呼び出し元のために、再利用可能な型 1 PFBおよびCFFパーサーユニットも同梱されています。
Delphi 構文 function HPDFSubsetCFF(const CFFBytes: TBytes; const KeepGlyph: array of Boolean): TBytes; function HPDFSfntIsOTF(const Data: TBytes): Boolean; function HPDFOTFFindCFFTable(const Data: TBytes; out TableOff: Cardinal; out TableLen: Cardinal): Boolean; function HPDFSubsetOTFContainer(const OTFBytes: TBytes; const KeepGlyph: array of Boolean): TBytes; function HPDFExtractTTFPostScript名前(const Data: TBytes): AnsiString;
説明 HPDFSubsetCFF は、CFFフォントのペイロードをインプレースで書き換え、グリフ ID を保持し、未使用の CharString とサブルーチンを最小限のスタブに置き換えます。これは、フォントコンテナからCFFテーブルをすでに抽出している呼び出し元向けのヘルパーです。
HPDFSfntIsOTF は、バージョンが OTTO である sfnt コンテナを検出します。HPDFOTFFindCFFTable は、埋め込まれた 'CFF ' テーブルを見つけます。HPDFSubsetOTFContainer は、埋め込まれた CFF テーブルをサブセット化し、元の sfnt テーブルのレイアウトが保持された OTF コンテナを返すことで、これらのステップを組み合わせます。HPDFExtractTTFPostScript名前 は sfnt の
サブセッターは、名前キーのCFF(単一の Private DICT、単一の Local Subr INDEX)と、CID キーのCFF(トップへ DICT ROS 演算子、複数のサブフォント Private DICT の FDArray、FDSelect のグリフからFDへのマップ、FDごとの Local Subr INDEX)の両方を認識します。CIDのサポートは、CJK / インド系 / アラビア語の Open型-CFF フォントをカバーします。クロージャスキャンは、保持された各 CharString のFDコンテキストを追跡するため、FDごとの Local Subr INDEX は独立してサブセット化されます。
低レベルの CFF 整数デコーダ、FDArray / FDSelect パーサー、およびサブルーチンスキャナーは、このパブリックヘルパーサーフェスの背後にある実装の詳細です。
型 1 および CFF パーサーユニット
See also: EnableFontSubsetting, フォントの埋め込み, PDF フィルターサポート |