FontFile2
FontFile2は、PDF文書内のストリームオブジェクトで、TrueTypeフォントプログラムを元のバイナリ形式で埋め込んで格納します。
FontFile2は、PDF文書内のストリームオブジェクトで、TrueTypeフォントプログラムを元のバイナリ形式で埋め込んで格納します。PDFがフォント記述子にFontFile2エントリを含む場合、完全なTrueTypeフォントデータがPDFファイル自体に保存され、異なるシステムやビューア間で一貫したテキストレンダリングが保証されます ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) 。この埋め込みメカニズムは、文書の可搬性とアクセシビリティ準拠のために不可欠です。
FontFile2は、PDF仕様で定義された特定のフォントストリーム型で、TrueTypeフォントプログラム専用に使用されます。FontFile(Type 1フォントを含む)やFontFile3(OpenTypeやCFFなど様々なフォント形式を含む)とは異なり、FontFile2はTrueTypeフォントデータ専用です。このストリームには、生のTrueTypeフォントファイルデータが含まれ、通常、glyf(グリフデータ)、head(フォントヘッダー)、hhea(水平ヘッダー)、hmtx(水平メトリクス)など、TrueType仕様で必要とされる全てのテーブルが含まれます。FontFile2エントリは、フォント記述子辞書内のキーとして現れ、実際のフォントプログラムのバイト列を保持するストリームオブジェクトを参照します。FontFile2が存在する場合、PDFプロセッサはこの埋め込みフォントデータを抽出して使用し、閲覧システムにフォントがインストールされているかどうかに関わらず、文書作成者が意図した通りにテキストをレンダリングします。
PDFの生成や処理を行う開発者にとって、FontFile2を理解することは、いくつかの実用的な理由から極めて重要です。第一に、FontFile2によるフォント埋め込みは文書の忠実性を保証します。テキストは全てのプラットフォームで同一にレンダリングされ、レイアウトの問題や文字表示の誤りを引き起こすフォント代替の問題が発生しません。第二に、フォントの埋め込みは、商用フォントをPDF内で配布する際のライセンス要件であることが多くあります。第三に、PDF/UAなどのアクセシビリティ標準では、スクリーンリーダーや支援技術による信頼性の高いテキスト抽出を可能にするため、適切なフォント埋め込みが必要とされます ( Citation: N.A., 2014 (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html ) 。第四に、PDFライブラリやツールを構築する際、FontFile2ストリームを正しく実装することで、生成された文書がPDF仕様に準拠し、全ての標準PDFビューアで正しく表示されることが保証されます。最後に、フォントの埋め込みはファイルサイズに大きく影響するため、開発者はフォントのサブセット化と最適化戦略について情報に基づいた意思決定を行うためにFontFile2を理解する必要があります。
FontFile2ストリームは、フォント記述子辞書からFontFile2キーを通じて参照されます。ストリーム自体には、完全なバイナリTrueTypeフォントファイルデータが含まれており、ファイルサイズを削減するために(通常はFlateDecode圧縮を使用して)フィルタリングする必要があります。PDFプロセッサがFontFile2ストリームを参照するフォントに遭遇すると、TrueType仕様に従ってTrueTypeデータを読み取り、解析します。ストリーム辞書には、フォントデータの非圧縮サイズを指定するLength1エントリが含まれる場合があります。FontFile2ストリームには一般的にフォントのサブセット化が適用され、フォント全体ではなく、文書内で実際に使用されているグリフのみが含まれるため、ファイルサイズが大幅に削減されます。サブセットフォントには、6文字のプレフィックスの後にプラス記号が続く特別に構成された名前(例:ABCDEF+Arial)を付ける必要があり、これがサブセットであることを示します。PDFプロセッサは、埋め込まれたTrueTypeデータをフォントのエンコーディング情報と組み合わせて使用し、文字コードを特定のグリフにマッピングして正しくレンダリングします。その後、TrueTypeアウトラインがラスタライズされるか、表示または印刷のための適切な出力形式に変換され、元のテキストの外観がピクセル単位で完璧に再現されます。
- Font Descriptor(フォント記述子) – 埋め込みフォントプログラムへの参照を含む、フォントのメトリクスとプロパティを含む辞書
- TrueType Font(TrueTypeフォント) – 元々Appleによって開発されたフォント形式で、現在は複数のプラットフォームで広く使用され、FontFile2を通じてPDFでサポートされている
- Font Subsetting(フォントサブセット化) – 完全なフォントではなく、文書内で実際に使用されている文字のみを埋め込む手法
- Font Embedding(フォント埋め込み) – 一貫したレンダリングを保証するために、PDFファイル内にフォントデータを含める一般的なプロセス
- CIDFont – 複雑なスクリプトや大規模な文字セットに使用されるフォントタイプで、異なるメカニズムを通じてTrueTypeデータを参照する場合がある
- (N.A.) (2020)
- (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html
- (N.A.) (2014)
- (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html
