Matrix
Apache PDFBoxのMatrixクラスは、PDF文書内のコンテンツの座標系と外観を操作するために使用される変換行列を表す基本的なAPIコンポーネントです。
Apache PDFBoxのMatrixクラスは、PDF文書内のコンテンツの座標系と外観を操作するために使用される変換行列を表す基本的なAPIコンポーネントです。変換行列は、 ( 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のグラフィックスモデルにとって不可欠であり、テキストやグラフィック要素の拡大縮小、回転、移動、傾斜などの操作を可能にします。このクラスは、PDFコンテンツがページ上でどのようにレンダリングされるかを制御するアフィン変換を作成、結合、適用するためのメソッドを提供します。
Matrixクラスは、PDFの処理における座標系変換に使用される3×3変換行列のApache PDFBox Javaによる実装です。このクラスは、PDF仕様で使用されている標準的な数学的表記法に従い、アフィン変換を定義する6つの値(a、b、c、d、e、f)をカプセル化しています。単純な位置座標とは異なり、Matrixオブジェクトは、複数の操作を単一の数学的構造に結合できる完全な幾何学的変換を表します。このクラスは、一般的な変換のためのコンストラクタと、行列の乗算、逆行列、点や矩形の変換のためのメソッドを提供します。PDFの操作という文脈において、Matrixオブジェクトはコンテンツの配置、テキストのレンダリング、グラフィックス状態の変更が関係するPDFBox APIの全体で使用されます。
Matrixクラスの理解と使用は、Apache PDFBoxを使用する開発者にとって極めて重要です。なぜなら、PDFにおけるほぼすべてのコンテンツの配置と操作は変換行列に依存しているからです。テキストを抽出する際、開発者はMatrix値を解釈して、ページ上のテキストの実際の位置と向きを決定する必要があります。コンテンツの作成と変更タスクでは、Matrixクラスによって要素の配置を正確に制御でき、開発者は画像の拡大縮小、テキストの回転、または特定の座標への注釈の配置を行うことができます。このクラスは、異なるページサイズのドキュメントの結合、コンテンツの再配置、 ( 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操作を行う際に特に重要です。適切な行列処理がなければ、抽出されたコンテンツの位置データが不正確になったり、作成されたコンテンツが予期しない場所や向きで表示されたりする可能性があります。
Matrixクラスは、アフィン変換の原理に基づいて動作し、標準的なPDF変換行列形式で6つの浮動小数点値を格納します:[a b c d e f]。これらの値は、数学的な行列[[a, b, 0], [c, d, 0], [e, f, 1]]に対応し、「a」と「d」は拡大縮小を、「b」と「c」は回転と傾斜を、「e」と「f」はx軸とy軸に沿った移動を制御します。開発者は、一般的な操作のためにMatrix.getScaleInstance()、Matrix.getRotateInstance()、Matrix.getTranslateInstance()などのファクトリメソッドを使用してMatrixインスタンスを作成するか、6つの値すべてを直接提供してカスタム行列を構築できます。このクラスは、乗算による行列の連結をサポートしており、より単純な変換を組み合わせて複雑な変換を構築できます。既存のPDFコンテンツを処理する際、PDFBoxはコンテンツストリームから変換行列を抽出し、APIメソッドを通じて提供することで、開発者が
(
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
)
に従ってコンテンツのレンダリング方法に影響する現在の変換行列(CTM)を決定できるようにします。このクラスは、点や矩形を変換するユーティリティメソッドも提供しており、手動で行列計算を行うことなく、異なる座標空間間の変換を容易にします。
- Content Stream – 変換行列操作を含む、ページコンテンツを定義するPDFオペレータとオペランドのシーケンス
- Coordinate System – PDF文書内で位置を指定するために使用される基準フレーム。変換行列を使用して変更できる
- PDPageContentStream – PDFページにコンテンツを書き込むために使用されるApache PDFBoxクラス。変換行列を維持し適用する
- Affine Transformation – 点、直線、平面を保持する幾何学的変換。Matrixクラスが実装している
- Graphics State – 現在の変換行列を含む、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
- (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
