ToUnicode
ToUnicode CMMapは、PDF ファイル内の特別なストリームオブジェクトで、フォント内で使用される文字コードを対応する Unicode 値にマッピングします。
ToUnicode CMMapは、PDF ファイル内の特別なストリームオブジェクトで、フォント内で使用される文字コードを対応する 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 ) 。このマッピングは、PDF ドキュメントからの信頼性の高いテキスト抽出、検索、コピー&ペースト操作を可能にするために不可欠です。ToUnicode CMap がない場合、アプリケーションはコンテンツストリーム内の文字コードがどの文字を表しているかを正確に判断できず、これらの操作においてテキストが事実上アクセス不可能になります。
ToUnicode CMap(Character Map)は、フォント辞書に関連付けられたストリームオブジェクトで、PDF のコンテンツストリームで使用される文字コード(CID または文字識別子)と Unicode スカラー値との間の明示的なマッピングを提供します。ToUnicode エントリはフォント辞書内に現れ、これらの文字コードから Unicode への関係を定義する特定の構文に従った CMap ストリームを参照します ( 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 ) 。
ToUnicode CMap は、フォントの組み込みエンコーディングとは異なる目的を果たします。フォントのエンコーディングが、レンダリング用に文字コードをグリフにマッピングする方法を決定するのに対し、ToUnicode CMap は特にテキスト抽出と意味的処理を可能にします。これは、カスタムエンコーディング、サブセット化されたフォント、または文字コードが標準的な Unicode 値に対応しない可能性がある CID キー付きフォントにとって特に重要です。アクセシビリティの観点から、ToUnicode CMap の存在は PDF コンテンツを機械可読にするために極めて重要です ( 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 のテキスト抽出、検索機能、アクセシビリティ機能を扱う開発者にとって、ToUnicode CMap は重要なインフラストラクチャです。これがないと、抽出されたテキストが文字化けとして表示されたり、視覚的には存在するテキストを検索操作で見つけられなかったり、支援技術がドキュメントコンテンツを適切に読み取れなかったりします。これは、意味構造が正確なテキスト抽出に依存する Tagged PDF ドキュメントを扱う際に特に重要です ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) 。
プログラムで PDF を生成する場合、特にカスタムフォントやフォントサブセット化を使用する場合、開発者は ToUnicode CMap が正しく生成され、埋め込まれていることを確認する必要があります。ToUnicode マッピングの欠落や誤りは、PDF アクセシビリティの失敗とテキスト抽出問題の最も一般的な原因の一つです。PDF コンテンツのインデックス化、テキスト分析、または PDF/UA のようなアクセシビリティ標準への準拠を必要とするアプリケーションにとって、適切な 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 ) 。
ToUnicode CMap は、PostScript に似た構文でマッピングを定義する CMap オペレーターを含むストリームオブジェクトとして構造化されています。ストリームは CMap ヘッダー情報で始まり、beginbfchar(単一文字マッピング用)や beginbfrange(文字範囲用)などのオペレーターを使用して、文字コードと Unicode 値との間の関係を確立します。
典型的な ToUnicode CMap 構造には以下が含まれます:
- CMap 識別情報:CMap の名前とタイプ情報
- コードスペース範囲:
begincodespacerangeを使用した有効な文字コード範囲の定義 - 文字マッピング:どの Unicode 値がどの文字コードに対応するかを指定する個別マッピング(
beginbfchar/endbfchar)または範囲マッピング(beginbfrange/endbfrange) - ベースフォント情報:マッピングされるフォントへのオプション参照
たとえば、単純なマッピングでは、文字コード 0x41 が Unicode U+0041(ラテン大文字 A)にマッピングされることを指定し、一方、サブセット化されたフォントでは 0x03 のような任意のコードが同じ Unicode 値にマッピングされる可能性があります。PDF レンダラーはフォントのエンコーディングを使用してグリフを表示しますが、テキスト抽出ソフトウェアは ToUnicode CMap を使用してそれらの文字コードを意味のある 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 ) 。
テキストを処理する際、PDF リーダーはまずコンテンツストリーム内の文字コードに遭遇し、ToUnicode CMap を使用してこれらのコードを Unicode 値に変換し、その後、結果として得られる Unicode テキストを出力または処理します。この間接化により、PDF は内部的に最適化されたカスタム文字エンコーディングを使用しながら、外部アプリケーションに対しては標準的な Unicode 出力を提供できます。
- CMap – PDF で文字コレクションとエンコーディングを定義するために使用される一般的な文字マッピングリソース
- Character Encoding(文字エンコーディング) – レンダリング目的でフォント内の文字コードをグリフにマッピングするシステム
- Font Subsetting(フォントサブセット化) – フォントから使用される文字のみを含める手法で、適切なテキスト抽出のために ToUnicode CMap が必要になることが多い
- CID Font – 文字コードの代わりに文字識別子を使用するフォントタイプで、通常 ToUnicode CMap が必要
- ActualText – 文字レベルのマッピングが不十分な場合に Unicode テキストを提供する Tagged PDF の代替方法
- (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
- PDF Association (2023)
- PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
- (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
