Text object
テキストオブジェクトは、PDFコンテンツストリーム内の特殊なセクションであり、ページ上にテキストをレンダリングするためのすべてのテキスト表示操作を含みます。
テキストオブジェクトは、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 ) によれば、テキストオブジェクトはBT(Begin Text)オペレータとET(End Text)オペレータで区切られ、テキスト固有のオペレータとパラメータを適用できる独立したコンテキストを作成します。すべてのテキスト描画コマンドは、適切にレンダリングされるためにテキストオブジェクト内に配置される必要があります。
テキストオブジェクトは、PDFコンテンツストリーム内の構造化されたブロックであり、BTオペレータで開始し、ETオペレータで終了します。このブロック内では、PDFプロセッサはTj(テキスト文字列の表示)、TJ(個別のグリフ配置によるテキスト表示)などのテキスト固有のオペレータや、TdやTmなどのテキスト配置オペレータを実行できます。テキストオブジェクトは、テキストマトリックス、テキスト行マトリックス、文字間隔、単語間隔、テキストレンダリングモードなど、独自のテキスト状態パラメータを保持します。
テキストオブジェクトは、テキスト操作専用の一時的なコンテキストを確立する点で、一般的なグラフィックス状態とは異なります。パス構築や描画などのグラフィックスオペレータはテキストオブジェクトの外側で実行できますが、テキスト表示オペレータはBT/ET区切り文字内でのみ有効です。この分離により、PDFプロセッサはテキストレンダリングを最適化し、テキスト配置のための独立した座標系を維持できます。
PDF生成や操作を行う開発者にとって、テキストオブジェクトを理解することは、いくつかの理由から不可欠です。
適切なテキストレンダリング: すべてのテキストコンテンツは、PDFに正しく表示されるために、テキストオブジェクト内に含める必要があります。BT/ETブロックの外側でテキスト表示オペレータを使用しようとすると、正しくレンダリングまたは処理されない不正な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を作成するための基本です。スクリーンリーダーや支援技術は、障害のあるユーザーにコンテンツを抽出して提示するために、適切に形成されたテキストオブジェクトに依存しています。
テキスト抽出の精度: テキストオブジェクトは、PDFパーサーがテキストの流れと読み取り順序を理解するのに役立ちます。 ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) で説明されているように、Tagged PDFを作成する際、テキストオブジェクトの構造は、コンテンツ抽出ツールや検索エンジンがドキュメントコンテンツを解釈する方法に直接影響します。
パフォーマンスの最適化: テキストオブジェクト内でテキスト操作をグループ化することにより、PDFプロセッサはテキストレンダリング操作をバッチ処理し、変換をより効率的に適用できるため、作成とレンダリングの両方でパフォーマンスが向上します。
テキストオブジェクトは、一連のオペレータを通じて動作し、特定の状態情報を維持します。
テキストオブジェクトの構造: テキストオブジェクトはBTオペレータで開始され、テキストマトリックス(Tm)とテキスト行マトリックス(Tlm)を単位行列に初期化します。その後のすべてのテキスト操作は、ETオペレータが検出されてテキストオブジェクトが閉じられ、テキスト固有の状態が破棄されるまで、このコンテキスト内で実行されます。
テキスト状態パラメータ: テキストオブジェクト内では、開発者は文字間隔(Tc)、単語間隔(Tw)、水平スケーリング(Tz)、行送り(TL)、フォントとサイズ(Tf)、テキストレンダリングモード(Tr)、テキストライズ(Ts)などのパラメータを変更できます。これらのパラメータは、変更されるか、テキストオブジェクトが終了するまで、テキストのレンダリング方法に影響します。
テキストの配置: テキストオブジェクトは、配置のために2つの主要なマトリックスを使用します。テキストマトリックス(Tm)はテキスト空間からユーザー空間への現在の変換を表し、テキスト行マトリックス(Tlm)は現在の行の開始位置を記録します。Td、TD、T*、Tmなどのオペレータは、これらのマトリックスを変更してページ上にテキストを正確に配置します。
テキスト表示オペレータ: 配置されると、テキストはTj(テキスト文字列の表示)、TJ(位置調整付きのテキスト表示)、’(次の行に移動してテキストを表示)、"(間隔を設定してテキストを表示)などのオペレータを使用してレンダリングされます。これらのオペレータは、現在のフォント、テキスト状態パラメータ、テキストマトリックスを使用して、ページ上にグリフを描画します。
ネストの制限: テキストオブジェクトはネストできません。 ( 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 ) によれば、すでにテキストオブジェクト内にいる間にBTを呼び出すことは無効です。さらに、テキストとグラフィックスのコンテキスト間の明確な分離を維持するために、特定の一般的なグラフィックスオペレータはテキストオブジェクト内で禁止されています。
- Content stream(コンテンツストリーム) – テキストオブジェクトやグラフィックス操作を含む、PDFページの外観を記述する命令のシーケンス
- Graphics state(グラフィックス状態) – 色、線幅、変換マトリックスなど、グラフィックスとテキストのレンダリング方法を制御するパラメータの集合
- Text state(テキスト状態) – フォント、文字間隔、テキストマトリックスなど、テキストレンダリングに固有のグラフィックス状態パラメータのサブセット
- Glyph(グリフ) – フォントで定義された文字の視覚的表現で、テキストオブジェクト内のテキスト表示オペレータによって配置および描画される
- Tagged PDF – アクセシビリティと再利用のためにテキストオブジェクトを含むコンテンツを階層に整理する、論理的な文書構造情報を含む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
