PDDocument
PDDocumentは、Apache PDFBoxの高レベルPDModel APIにおける主要なクラスで、メモリ上のPDF文書オブジェクトを表現します。
PDDocumentは、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 ) で定義された基盤となるPDF構造の複雑さを抽象化しながら、開発者がPDFファイルをプログラム的に作成、読み込み、変更、保存するためのメソッドを提供します。PDDocumentは、単純な文書作成から、フォーム、注釈、アクセシビリティ機能を含む複雑な操作まで、JavaアプリケーションにおけるほとんどのPDF操作タスクの主要なエントリーポイントとして機能します。
PDDocumentは、PDF文書全体をオブジェクト指向的に表現したJavaクラスです。PDF構文や基本オブジェクトを直接扱う低レベルのPDF解析アプローチとは異なり、PDDocumentは高レベルの抽象化レイヤーを提供し、開発者が直感的なJavaメソッドとオブジェクトを使用して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 ) で概説されているPDF仕様との整合性を維持します。
PDDocumentは、メモリセーフな操作、自動的なリソース管理、文書コンポーネントへの構造化されたアクセスを提供することで、生の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を扱う際、PDDocumentはAPIメソッドを通じて文書の構造ツリーやタグ付きコンテンツにアクセスし、操作することができます。このクラスは、増分更新と文書全体の書き換えの両方を処理し、簡略化されたインターフェースの背後でPDFオブジェクト間の複雑な関係を管理します。
PDF対応アプリケーションを構築する開発者にとって、PDDocumentは低レベルのPDF構文やオブジェクト関係を理解する必要性を排除します。この抽象化により、開発時間が大幅に短縮され、破損した、または非準拠のPDFファイルを生成する可能性のあるエラーが最小限に抑えられます。このクラスは、メモリ管理、適切なオブジェクト参照、文書の整合性維持を自動的に処理します。
PDDocumentは、 ( 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 ) のような標準に準拠したアクセシブルな文書を作成し、 ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) のベストプラクティスを実装する際に特に重要です。このAPIは、基盤となるPDFアーキテクチャの深い知識を必要とせずに、構造要素、マークされたコンテンツ、アクセシビリティプロパティを扱うメソッドを提供します。これにより、開発者は標準への準拠を確保しながら、PDF内部構造ではなくアプリケーションロジックに集中できます。
PDDocumentは、PDFファイルをメモリに読み込み、構造化されたオブジェクトグラフに解析することで動作します。PDDocument.load()を使用してPDFが読み込まれると、クラスはファイルのクロスリファレンステーブル、オブジェクトストリーム、文書カタログを読み取り、メモリ内表現を作成します。各コンポーネント(ページ、フォント、画像、注釈)は、getterおよびsetterメソッドを通じてアクセス可能なJavaオブジェクトになります。
このクラスは、最適なメモリ使用のために遅延読み込みを使用し、アクセスされたときにのみオブジェクトを読み込みます。ページはPDPageTreeオブジェクトを通じてアクセスされ、PDDocumentが内部的に管理します。PDDocumentメソッドを通じて行われた変更は、メモリ内のオブジェクトグラフを更新し、変更はsave()が呼び出されたときにのみディスクに書き戻されます。このアプローチにより、変更をコミットする前に複数の操作を効率的に実行できます。
文書作成の場合、PDDocumentは空の文書カタログから開始し、ページ、リソース、メタデータの段階的な追加を可能にします。このクラスは、オブジェクト番号付け、クロスリファレンステーブルを自動的に管理し、保存前にすべての必要なPDF構造が存在することを保証します。また、暗号化、圧縮、その他のPDF機能を設定オプションを通じて透過的に処理します。
PDDocumentを使用する際は、リソースのクリーンアップが重要です。このクラスはCloseableを実装しており、ファイルハンドル、メモリバッファ、その他のシステムリソースを適切に解放するために、close()またはtry-with-resourcesブロックを通じた明示的なクローズが必要です。
- PDPage – PDDocument内の単一ページを表し、コンテンツストリームとページレベルのリソースを含む
- PDPageTree – PDF文書内のページの階層構造を管理する
- PDDocumentCatalog – PDF文書のオブジェクト階層のルートで、PDDocumentを通じてアクセスされる
- COSDocument – PDDocumentの基盤となる低レベルのCOS(Carousel Object Structure)表現
- PDResources – 文書内のページが使用するフォント、画像、その他のリソースを管理する
- (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
