aspose.info
JA

TTF - TrueType フォント ファイル形式

更新日

.TTF ファイルとは何ですか?

拡張子が .ttf のファイルは、TrueType 仕様のフォント テクノロジに基づくフォント ファイルを表します。当初は Apple Computer, Inc によって Mac OS 用に設計および発売され、後に Microsoft によって Windows OS 用に採用されました。 TrueType フォントは、解像度に依存することなく、コンピューター画面とプリンターで最高品質の表示を提供します。フォントを使用する最新のアプリケーションはすべて、TTF ファイルを処理できます。 TTF フォント ファイルはインターネット上で無料で入手でき、OTF や WOFF などの他のフォント ファイル形式に変換することもできます。

簡単な歴史

1980 年代に Apply Computer, Inc によって MacOS 用に設計された TTF フォント形式は、Adobe の Type 1 形式によるいくつかの技術的制限を解決することを目的としていました。 Apple は 1991 年に Mac に TrueType フォントのサポートを含めました。TTF フォントの背後にある設計目標は、ストレージと処理の効率、および拡張性でした。この拡張性に基づいて、既存のフォントを TrueType 形式に変換できます。

Microsoft は、1992 年 4 月に Windows 3.1 で TrueType フォントを初めて使用しました。これは、Apple が Microsoft に TrueType のライセンスを供与することに同意した後のことです。ラスタライズ メカニズムが改善され、その効率とパフォーマンスが向上しました。

True Type ファイル形式の仕様

TrueType フォント ファイルは、連結された一連のテーブルで構成されるバイナリ ファイルです。各テーブルは一連の単語であり、「Tag」と呼ばれる名前が付いています。各タグは uint32 データ型で、4 文字で構成されます。ファイルの最初のテーブルは、フォント ファイル内の他のテーブルへのアクセスを提供するフォント ディレクトリです。フォント データは、フォント ディレクトリ テーブルの後に続く他のテーブルに含まれます。各テーブルはそのタグでアクセスできるため、テーブルはファイル内で任意の順序で表示できます。

必要なテーブルとそのタグ名を次の表に示します。

タグテーブル
‘cmap’文字からグリフへのマッピング
‘グリフ’グリフデータ
‘頭’フォントヘッダー
‘へへ’水平ヘッダー
‘hmtx’水平指標
‘場所’ロケーションへのインデックス
‘maxp’最大プロファイル
‘名前’ネーミング
‘投稿’ポストスクリプト

データ型

TrueType フォントは、次の表に示すように、標準の整数型と追加のデータ型を使用します。

データ型説明
ショートフラック16 ビットの符号付き小数
固定16.16 ビットの符号付き固定小数点数
フォワードem 空間で測定可能な最小距離である FUnits で数量を表す 16 ビットの符号付き整数。
uFWordem 空間で測定可能な最小距離である FUnits で数量を表す 16 ビットの符号なし整数。
F2Dot14下位 14 ビットが分数を表す 16 ビットの符号付き固定数。
長い日付時間1904 年 1 月 1 日午前 0 時からの日付の長い内部形式 (秒単位)。符号付き 64 ビット整数として表されます。

フォント ディレクトリ

TrueType フォントの最初のテーブルは、他のテーブルのデータにアクセスするために必要な情報へのアクセスを提供するフォント ディレクトリです。さらに、次のもので構成されます。

  • Offset subtable - フォント内の表の記録を保持し、ディレクトリ内の各表にアクセスするためのオフセット情報を提供します
  • Table Directory - フォント内の各テーブルのエントリが含まれています

オフセット サブテーブル

オフセット サブテーブルを以下に示します。

タイプ名前説明
uint32スケーラータイプこのフォントをラスタライズするために使用される OFA スケーラーを示すタグ。詳細については、以下のスケーラー タイプに関する注意を参照してください。
uint16テーブル数テーブル数
uint16検索範囲(2 の最大べき乗 <= numTables)*16
uint16エントリーセレクターlog2(2 の最大べき乗 <= numTables)
uint16レンジシフトnumTables*16-searchRange

テーブル ディレクトリ

テーブル ディレクトリは、オフセット サブテーブルの直後にあります。その構造は次の表のとおりです。

タイプ名前説明
uint32タグ4 バイトの識別子
uint32チェックサムこのテーブルのチェックサム
uint32オフセットsfnt
uint32長さこのテーブルの長さ (バイト単位) (実際の長さはパディングされた長さではありません)

フォント ファイル内の各テーブルには、独自のテーブル ディレクトリ エントリが必要です。テーブル内のエントリは、タグの昇順で並べ替える必要があります。

参考文献

関連項目