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

MoveText

MoveTextは、Apache PDFBoxにおけるオペレータークラスで、PDFコンテンツストリーム内のテキスト位置操作を処理します。

キーワード: movetext, MoveText

概要

MoveTextは、Apache PDFBoxにおけるオペレータークラスで、PDFコンテンツストリーム内のテキスト位置操作を処理します。このクラスは、 ( 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 ) で定義されているTdおよびTDオペレーターに対応し、指定された水平および垂直オフセットによってテキスト位置を移動します。このクラスは、テキスト抽出、コンテンツ操作、およびPDFドキュメント内のテキストレイアウトの理解に不可欠です。

定義

MoveTextは、PDFコンテンツストリーム内のテキスト位置指定コマンドを表すPDFBox Operatorクラスの具象実装です。具体的には、Tdオペレーターを処理し、現在のテキスト行列からxおよびyオフセットを適用することで、現在のテキスト位置を新しい場所に移動します。絶対的なテキスト位置を確立するSetTextMatrixとは異なり、MoveTextは現在のテキスト状態に基づいて相対的な位置決めを行います。このオペレーターは、 ( 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 ) のテキストオブジェクトオペレーターセクションで定義されているように、PDFページ上でテキストがどのように配置され、順序付けられるかの基本となるものです。

MoveTextオペレーターは、スケーリングされていないテキスト空間単位での変換値を指定する2つの数値オペランド(txとty)を受け取ります。PDFコンテンツを処理する際、PDFBoxはこのクラスを使用してテキスト位置の変化を追跡します。これは、正確なテキスト抽出と、 ( 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 ) などの標準に準拠したアクセシブルなドキュメントにおける適切な読み順の維持に不可欠です。

重要性

PDFのテキスト抽出やコンテンツ分析を行う開発者にとって、MoveTextを理解することは、テキストがページ上のどこに表示されるか、どのように読まれるべきかを正確に判断するために極めて重要です。PDFからテキストを抽出する際、MoveText操作は適切な単語間隔、改行、読み順の確立に役立ちます。これらの要素は、アクセシブルなドキュメントの作成や変換プロセス中のドキュメント忠実度の維持に不可欠です。

これは、 ( Citation: , (). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) で概説されているように、論理的な読み順が視覚的な表示と一致する必要があるTagged PDFを扱う際に特に重要になります。MoveText操作を誤って解釈すると、テキスト抽出の混乱、不正確なアクセシビリティタグ、または音声読み上げ機能の不具合が発生する可能性があります。PDF操作ツール、アクセシビリティチェッカー、またはドキュメント変換システムを構築する開発者は、ドキュメントの整合性を維持するためにこれらのオペレーターを適切に処理する必要があります。

仕組み

PDFBoxのコンテンツストリームプロセッサーがPDFコンテンツストリーム内でTdオペレーターに遭遇すると、MoveTextクラスをインスタンス化または利用して操作を処理します。オペレーターはオペランドスタックから2つの数値パラメーターを読み取ります:水平オフセット(tx)と垂直オフセット(ty)です。これらの値は、PDFのグラフィックス状態の一部であるテキスト行列に適用されます。

テキスト行列は、指定されたオフセットによって平行移動され、次のテキスト表示操作の開始点を効果的に移動します。この行列変換は、別のテキスト位置指定オペレーターに遭遇するまで、後続のすべてのテキストレンダリングに影響を与えます。MoveText操作は、現在のテキスト行列の回転とスケーリングを保持しながら、平行移動成分のみを変更します。

PDFBoxでは、開発者はPDFGraphicsStreamEngineまたはPDFTextStripperクラスを拡張し、適切なオペレーター処理メソッドをオーバーライドすることで、MoveText操作をインターセプトして処理できます。これにより、テキスト位置の追跡、バウンディングボックスの計算、またはドキュメントの元のレイアウト構造を尊重する特殊なテキスト抽出アルゴリズムの実装のためのカスタムロジックが可能になります。

関連用語

  • TextMatrix – テキスト空間座標をユーザー空間座標にマッピングする現在の変換行列
  • TextPosition – 抽出されたテキストフラグメントの位置、サイズ、コンテンツを表すPDFBoxクラス
  • ContentStream – テキスト操作を含む、ページコンテンツを定義するPDFオペレーターとオペランドのシーケンス
  • PDFTextStripper – コンテンツストリームオペレーターを処理してPDFドキュメントからテキストを抽出するための主要なPDFBoxクラス
  • GraphicsState – テキスト状態パラメーターを含む、PDFグラフィックスエンジンの現在の状態を定義するパラメーターのコレクション

出典

(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
PDF Association (2023)
(). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
(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