Font subtype CIDFontType0
CIDFontType0は、PDF内のCID(Character Identifier)フォントの特定のサブタイプで、グリフ記述にType 1フォント技術を使用します。
CIDFontType0は、PDF内のCID(Character Identifier)フォントの特定のサブタイプで、グリフ記述にType 1フォント技術を使用します ( 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 ) 。このフォントサブタイプは、主に中国語、日本語、韓国語などの東アジア言語のような複雑な書記体系で使用され、グリフの数が従来のシンプルフォントで扱える範囲をはるかに超える場合に利用されます。CIDFontType0は、PDFにおける2つの可能なCIDフォント実装のうちの1つであり、「0」はCompact Font Format(CFF)またはType 1フォントプログラム構造の使用を示しています。
CIDFontType0は、PDFのCIDFontディクショナリで指定されるフォントサブタイプ識別子で、グリフアウトラインの保存とレンダリング方法を定義します。主な特徴は、その基礎となるグリフ表現にあります。CIDFontType0はType 1フォントアウトライン(PostScriptスタイルの3次ベジェ曲線とcharstringプログラムに基づく)を使用するのに対し、CIDFontType2はTrueTypeグリフ記述を使用します ( 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 ) 。
CIDフォントは、文字エンコーディングとグリフ選択を分離することで、シンプルフォントとは根本的に異なります。シンプルフォントが文字コードを直接グリフにマッピングするのに対し、CIDフォントは2段階のマッピングプロセスを使用します。最初に文字コードからCharacter Identifier(CID)へ、次にCIDから実際のグリフ記述へとマッピングします。このアーキテクチャにより、CIDFontType0は、各サブセットに対して個別のフォントプログラムを必要とせずに、数千または数万のグリフを含むフォントコレクションを効率的に処理できます。
/CIDFontType0サブタイプを含むCIDFontディクショナリは、CIDSystemInfoディクショナリ(文字コレクションを識別)と、実際のフォントプログラムデータを含むまたは参照するFontDescriptorも指定する必要があります。
PDF生成や操作を扱う開発者にとって、CIDFontType0の理解は、多言語ドキュメント、特に東アジア言語を含むドキュメントを扱う際に不可欠です。適切なフォントサブタイプの選択は、ファイルサイズ、レンダリングの忠実度、クロスプラットフォーム互換性に影響を与えます。
PDFテキスト抽出やレンダリングエンジンを実装する際、開発者はCIDFontType0フォントをシンプルフォントとは異なる方法で処理する必要があります。これには、2段階の文字からグリフへのマッピングプロセスと、これらのマッピングを定義するCMap(Character Map)リソースを考慮する必要があります。CIDFontType0フォントを適切に処理しないと、テキストの欠落、誤った文字抽出、またはレンダリングの失敗が発生する可能性があります。
アクセシビリティの実装においては、CIDFontType0フォントは適切なToUnicodeマッピングの存在を保証するために特別な注意が必要です。これにより、支援技術やテキスト抽出ツールがドキュメントコンテンツを正しく解釈できるようになります ( 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 ) 。
CIDFontType0は、PDF内の階層的なフォントアーキテクチャを通じて動作します。このプロセスは、コンテンツストリームがType 0(複合)フォントを参照することから始まり、そのフォントはさらに/Subtype /CIDFontType0とマークされたCIDFontサブディクショナリを参照します。
文字マッピングのワークフローは以下のように進行します:
- 文字コードがコンテンツストリームから、まずCMapリソースを通じて処理され、マルチバイト文字コードをCID(数値識別子)にマッピングします
- CIDは、フォントの内部charsetまたはグリフ順序を使用して、CIDFontプログラム内のグリフ記述にマッピングされます
- グリフアウトラインは、Type 1 charstringsとして保存され、従来のType 1フォントで使用されるのと同じPostScriptベースのアルゴリズムを使用してレンダリングされます
CIDSystemInfoディクショナリは、文字コレクション(Adobe-Japan1やAdobe-GB1など)、レジストリ、順序を識別し、異なるシステム間での一貫した解釈を保証します。FontDescriptorはメトリクスを提供し、実際のフォントプログラムデータを完全なフォントとして、またはドキュメントで使用されるグリフのみを含むサブセットとして埋め込むか参照することができます。
適切なテキスト抽出とアクセシビリティのために、ToUnicode CMapを含めることで、CIDをUnicode値に逆マッピングし、視覚的表現を超えたテキストコンテンツの意味的理解を可能にする必要があります ( 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 ) 。
- CIDFontType2 – Type 1アウトラインの代わりにTrueTypeグリフ記述を使用する代替CIDフォントサブタイプ
- CMap – 複合フォントにおいて文字コードをCharacter Identifier(CID)に変換するマッピングリソース
- Type 0 Font – PDF内のCIDフォントのコンテナとして機能する複合フォントタイプ
- CIDSystemInfo – CIDフォントの文字コレクション、レジストリ、順序を識別するディクショナリ
- ToUnicode CMap – テキスト抽出とアクセシビリティのために文字コードまたはCIDをUnicode値にマッピングする特別なCMap
- (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
