PDFormXObject
PDFormXObjectは、Apache PDFBox PDModel APIのクラスで、PDF仕様で定義されているForm XObjectという外部オブジェクトの一種を表します。
PDFormXObjectは、Apache PDFBox PDModel APIのクラスで、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 ) で定義されているForm XObjectという外部オブジェクトの一種を表します。Form XObjectは、PDFドキュメント全体で参照・再利用可能な自己完結型のコンテンツストリームであり、効率的な文書構造とコンテンツの再利用に不可欠です。PDFBoxにおいて、PDFormXObjectクラスは、これらの再利用可能なグラフィカル要素をプログラム的に作成、読み取り、操作するためのメソッドを提供します。
PDFormXObjectは、Apache PDFBoxのPDModelパッケージに含まれる高レベルのJavaクラスで、 ( 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 Form XObjectの機能をカプセル化します。Form XObjectは、独自のリソースディクショナリを持つ完全なコンテンツストリームを含むという点で、他のPDFオブジェクトとは異なります。これにより、複雑なグラフィックス、テキスト、画像を単一の再利用可能なユニットとしてパッケージ化できます。ビットマップまたはベクター画像データのみを含むImage XObjectとは異なり、Form XObjectは、通常ページのコンテンツストリームに表示されるあらゆるコンテンツ(テキスト、パス、シェーディング、さらには他のXObjectを含む)を含むことができます。PDFormXObjectクラスは、COSStreamのような低レベルのPDFBoxクラスとは異なり、PDF構文の複雑さを処理する構造化されたオブジェクト指向インターフェースを提供することで、開発者がPDF内部の深い知識なしにForm XObjectを扱えるようにします。
PDFドキュメントを扱う開発者にとって、PDFormXObjectはいくつかの実用的な用途で重要です。ヘッダー、フッター、透かし、ロゴなど、ドキュメント全体に複数回効率的に配置できる再利用可能なコンテンツテンプレートの作成を可能にします。これにより、基礎データを複製することなく、ファイルサイズを大幅に削減し、プログラム的なPDF生成時のパフォーマンスを向上させます。PDFormXObjectは、PDFフォーム、オーバーレイ、およびTagged PDF ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) でのアクセシビリティ機能の実装においても不可欠です。Form XObjectは、文書のセマンティクスを維持する適切に構造化されたコンテンツを含むことができるためです。さらに、PDFormXObjectの理解は、既存のPDFコンテンツを抽出、分析、変換する必要がある開発者にとっても重要です。多くの複雑なPDFは、レイアウトとコンテンツの組織化にForm XObjectを広範に使用しているためです。
PDFormXObjectは、PDFコンテンツストリームと、バウンディングボックス、変換マトリックス、リソースディクショナリなどの関連メタデータをラップすることで機能します。PDFBoxを使用して新しいPDFormXObjectを作成する場合、開発者は通常、PDDocumentの参照でクラスをインスタンス化し、setResources()などのメソッドを使用してフォントや画像を定義し、setBBox()で座標空間の境界を設定し、OutputStreamを取得してコンテンツストリームのオペレーターを記述します。次に、Form XObjectをページのリソースに追加し、Doオペレーターを使用してページのコンテンツストリームで参照できます。既存のPDFを読み取る場合、PDFormXObjectインスタンスはPDResourcesクラスを使用してページリソースから取得でき、開発者はXObjectのコンテンツストリームにアクセスしたり、そのプロパティを調べたり、レンダリングされたコンテンツを抽出したりできます。このクラスは、基礎となるCOS(Carousel Object Structure)レイヤーを自動的に処理し、PDFBoxのオブジェクトモデルと
(
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構文との間で変換を行います。アクセシビリティ準拠
(
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
)
の場合、Form XObjectを使用する際には文書の構造ツリーに適切に統合する必要があり、PDFBoxは構造要素クラスを通じてこれを容易にします。
- COSStream – Form XObjectの基礎となるストリームオブジェクトを表す低レベルのPDFBoxクラス
- PDResources – XObject、フォント、その他のPDFリソースへの参照を含むリソースディクショナリを管理するクラス
- PDPage – コンテンツストリームにForm XObjectへの参照を含めることができるPDFページを表すクラス
- XObject – PDFにおける外部オブジェクトの総称で、Form XObjectとImage XObjectの両方を含む
- Content Stream – ページコンテンツまたはForm XObjectの外観を記述する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
