Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
PDF開発用語集 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

Type 0 font

Type 0 fontは、PDF内の複合フォント形式であり、特に中国語、日本語、韓国語(CJK)などの大規模な文字セットをサポートするために使用されます。

カテゴリ: Text & Fonts
キーワード: type 0 font, Type 0 font

概要

Type 0 fontは、PDF内の複合フォント形式であり、特に中国語、日本語、韓国語(CJK)などの大規模な文字セットをサポートするために使用されます。文字コードを直接グリフにマッピングするシンプルフォントとは異なり、Type 0 fontは2段階のマッピングプロセスを使用します。まずCMapを介して文字コードをCharacter Identifier(CID)にマッピングし、次にそのCIDをCIDFont経由で実際のグリフにマッピングします ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) 。このアーキテクチャにより、単一のフォントで数千から数万のグリフにアクセスできる一方で、効率的なファイルサイズと処理性能を維持できます。

定義

Type 0 fontは、PDF仕様で定義された高度なフォント構造であり、CIDFontのコンテナまたは「ラッパー」として機能します。Type 0 fontの主な特徴は、その複合的な性質です。つまり、CMap(Character Map)リソースとその子孫となるCIDFontの両方を参照する高レベルのフォント辞書で構成されています。CMAPは、コンテンツストリームから入力された文字コードをCID(Character ID)に変換する方法を定義し、CIDFontはそれらのCIDを実際のグリフ記述に関連付けます。

Type 0 fontは、シンプルフォントタイプ(Type 1、TrueType、Type 3)といくつかの基本的な点で異なります。シンプルフォントは単一バイトの文字コードを使用するため、フォントインスタンスごとに最大256グリフに制限されます。Type 0 fontは、マルチバイト文字コードをサポートすることでこの制限を克服し、単一のフォント参照を通じて数千のグリフを含む文字セットへのアクセスを可能にします。これにより、大規模な文字セットを持つ言語や、広範なUnicodeサポートを必要とするドキュメントに不可欠となります。

Type 0 fontアーキテクチャは、文字エンコーディング(CMAPで処理)とグリフ定義(CIDFontで処理)を分離し、複数のエンコーディングスキーム間で共通のグリフデータを共有しながら、文字のエンコード方法に柔軟性を提供します。

重要性

PDF生成、操作、またはレンダリングに携わる開発者にとって、Type 0 fontを理解することは、いくつかの実用的な理由から極めて重要です。

国際的なテキストサポート: アプリケーションがCJK言語、アラビア語、またはその他の大規模な文字セットを持つスクリプトを含むPDFを表示または生成する必要がある場合、通常Type 0 fontが必要です。これらの言語にシンプルフォントを使用しようとすると、不完全または不正確なテキストレンダリングが発生します。

Unicode処理: Type 0 fontは、PDF内でUnicodeテキストを処理するための最も堅牢なメカニズムを提供します。PDFテキスト抽出、検索機能、またはアクセシビリティ機能を実装する際、Type 0 fontの構造とそれに関連するCMAPを正しく解析することは、正確な文字からUnicodeへのマッピングに不可欠です。

フォントサブセット化と最適化: Type 0 fontを理解することで、開発者は効率的なフォントサブセット化戦略を実装できます。これらのフォントは大規模なグリフセットを参照できるため、必要なグリフのみを適切にサブセット化することで、機能を犠牲にすることなくPDFファイルサイズを大幅に削減できます。

アクセシビリティコンプライアンス: PDF/UAなどの標準に準拠したアクセシブルなPDFを作成する際、Type 0 fontとそのToUnicode CMAPを適切に実装することで、支援技術がテキストコンテンツを正確に抽出および解釈できるようになります ( Citation: N.A., (N.A.). (). 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 )

仕組み

Type 0 fontシステムは、多層アーキテクチャを通じて動作します。

フォント辞書構造: Type 0 fontは、/Typeエントリが/Fontに、/Subtype/Type0に設定されたフォント辞書から始まります。この辞書には、CMap(定義済みまたは埋め込み)を参照する/Encodingエントリと、正確に1つのCIDFont参照を含む/DescendantFonts配列が含まれます。

文字コードマッピング: PDFレンダラーがType 0 fontを使用するテキストに遭遇すると、コンテンツストリームから文字コードを処理します。これらのコードは、CMAPの定義に応じて1バイト以上の長さになる場合があります。CMAPは各文字コードをCID(Character ID)に変換します。CIDは、フォントの文字コレクション内の文字を表す抽象的な数値識別子です。

CIDFontルックアップ: 次に、CIDを使用して、子孫CIDFont内の実際のグリフを検索します。CIDFontには、グリフ記述(CIDFontType0のCFF/Type 1アウトライン、またはCIDFontType2のTrueTypeアウトライン)と関連するメトリクスが含まれています。CIDFontは、使用されている文字コレクション(例:Adobe-Japan1やAdobe-GB1)を識別するCIDSystemInfo辞書も参照します。

ToUnicodeマッピング: テキスト抽出とアクセシビリティのために、Type 0 fontには通常、CIDからUnicode値への逆マッピングを提供するToUnicode CMAPが含まれています。この個別のマッピングにより、同じCIDFontを異なるエンコーディングスキームで使用しながら、適切なUnicodeセマンティクスを維持できます。

ワークフローの例: Type 0 fontで(UTF-16BEで「中文」を表す)テキスト文字列<4E2D6587>をレンダリングする場合:

  1. CMAPがバイトシーケンスを解釈し、特定のCID(例:CID 12345とCID 12346)にマッピング
  2. CIDFontがそれらのCIDのグリフアウトラインを取得
  3. レンダラーが適切な位置にグリフを描画
  4. テキスト抽出が実行される場合、ToUnicode CMAPがCIDをUnicode値U+4E2DとU+6587に変換

関連用語

  • CIDFont – Type 0 fontによって参照される子孫フォントで、実際のグリフ記述を含み、Character IDによって整理されています
  • CMap – 文字コードをCIDに変換するマッピングリソースで、Type 0 fontで使用されるエンコーディングを定義します
  • Character ID (CID) – CIDFontの文字コレクション内のグリフを参照するために使用される抽象的な数値識別子
  • ToUnicode CMap – テキスト抽出とアクセシビリティのために、文字コードまたはCIDからUnicode値へのマッピングを提供する特別なCMap
  • Font subsetting – ドキュメントで実際に使用されているグリフのみを含める手法で、大規模な文字セットを持つType 0 fontで特に重要です

出典

(N.A.) (2020)
(N.A.). (). 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.). (). 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