aspose.info
JA

CFF2 - コンパクト フォント ファイル形式バージョン 2

更新日

.CFF2 オプション番号

CFF2 ファイル形式は、CFF ファイル形式のバージョン 2.0 であり、CFF ファイル形式と同様にグリフ アウトラインとメタデータを効率的に格納できます。 CFF2 は、タグ CFF2 を持つ「sfnt」テーブルとして OpenType フォントのコンテキストで使用されることを意図しているという点で、CFF とは異なります。スタンドアロン プログラムとして使用することはできず、他の OpenType テーブルのデータに依存します。

CFF2 ファイル形式

CFF2 ファイル形式の仕様 には、内部データ レイアウト、データ型、テーブル、およびファイル形式に関するその他の内部情報に関する詳細が含まれています。開発者の参照用に参照できます。これらの詳細の一部は次のとおりです。

データレイアウト

CFF2 ファイル形式のバイナリ データは、多数の個別のデータ構造として論理的に編成されています。バイナリ データ内のレイアウトは、次の表に示すとおりです。

エントリーコメント
ヘッダー固定位置
トップ DICT固定位置
グローバル サブル インデックス固定位置
バリエーション店舗
FDSelectFont DICT INDEX に複数の Font DICT がある場合にのみ表示されます。
フォント DICT INDEX
フォント DICT の配列フォント DICT INDEX に含まれています。
プライベート DICTフォント DICT ごとに 1 つ。

最初の 3 つの構造のみが固定位置に基づいています。残りはオフセットによって到達され、それらの順序は変更できます。

データ型

CFF2 ファイル形式では、次のデータ型が使用されます。

名前範囲説明
uint80 ~ 2558 ビット符号なし数値
uint160 ~ 6553516 ビット符号なし数値
uint320 ~ 429496729532 ビット符号なし数値
オフセット可変1、2、3、または 4 バイトのオフセット (インデックス テーブルの OffSize フィールドで指定)
オフサイズ1 ~ 41 バイトの符号なし数値は、1 つまたは複数のオフセット フィールドのサイズを指定します

すべてのマルチバイト数値データとオフセット フィールドをビッグ エンディアンのバイト順で格納します。 CFF2 形式は、アラインメントの制限を受けないため、パディング バイトがありません。

DICTデータ

CFF2 ファイルには、コンパクトなトークン化形式のキーと値のペアとして、フォント辞書データが含まれています。ディクショナリ キーは 1 または 2 バイトの演算子としてエンコードされ、ディクショナリ値は可変サイズの数値オペランドとしてエンコードされます。 DICT データ形式を使用する構造には、「Top DICT」、「Font DICT」、および「Private DICT」の 3 つがあります。さまざまなサイズの多数の整数オペランド型が定義され、次の表に示すようにエンコードされます (オペランドの最初のバイトは b0、2 番目は b1 など)。

サイズb0範囲値の範囲値の計算
132 ~ 246-107 ~ +107b0 ~ 139
2247 ~ 250+108 ~ +1131(b0 - 247) * 256 + b1 + 108
2251 ~ 254-1131 ~ -108-(b0 - 251) * 256 - b1 - 108
328-32768 ~ +32767b1 « 8
529-(2^31) から +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

ヘッダー

バイナリ データは、次の表に示す形式のヘッダーで始まります。

タイプ名前説明
uint8メジャーバージョンフォーマット メジャー バージョン。 2 に設定します。
uint8マイナー バージョンマイナー バージョンをフォーマットします。ゼロに設定します。
uint8ヘッダーサイズヘッダー サイズ (バイト)
uint16topDictLengthトップ DICT 構造体の長さ (バイト単位)。

参考文献

関連項目