PDDocumentCatalog
PDDocumentCatalogは、Apache PDFBoxのPDModel APIにおける高レベルなJavaクラスで、PDFドキュメントのカタログ辞書へのプログラマティックなアクセスを提供します。
PDDocumentCatalogは、Apache PDFBoxのPDModel APIにおける高レベルなJavaクラスで、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 ) で定義されているすべての主要なドキュメント構造への参照を含んでいます。このクラスにより、開発者はページツリー、メタデータ、ドキュメントアウトライン、インタラクティブフォーム、アクセシビリティ機能などのコアとなるPDFコンポーネントの読み取りと変更が可能になります。
PDDocumentCatalogは、Apache PDFBoxのオブジェクト指向APIにおいてPDFカタログ辞書(Type /Catalog)を表すラッパークラスです。COSDictionaryクラスを使用した低レベルの辞書アクセスとは異なり、PDDocumentCatalogはドキュメントレベルの構造を扱うための型安全なメソッドと便利な機能を提供します。カタログ辞書はPDFの内部構造をナビゲートするためのエントリーポイントであり、/Pages(ページツリーのルート)などの必須エントリと、フォーム(/AcroForm)、ドキュメント構造(
(
Citation: PDF Association, 2023
PDF Association(2023). Retrieved from
https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
)
で説明されているTagged PDFのための/StructTreeRoot)、メタデータ(/Metadata)、表示設定などのオプションエントリを含んでいます。PDDocumentCatalogは直接的な辞書操作の複雑さを抽象化し、適切に型付けされたPDModelオブジェクトを返すgetPages()、getAcroForm()、getStructureTreeRoot()などのメソッドを提供します。
JavaアプリケーションでPDF操作を行う開発者にとって、PDDocumentCatalogは低レベルの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/UAなどのPDFアクセシビリティコンプライアンスを実装する際、開発者はPDDocumentCatalogを使用して構造ツリーのルートにアクセスし、必要なメタデータエントリを設定します。このクラスは、ページの追加や削除、インタラクティブフォームの操作、ドキュメントメタデータの管理、ビューア設定の設定、ナビゲーション機能の実装といった一般的なタスクを大幅に簡素化します。PDDocumentCatalogがなければ、開発者は生のCOSBaseオブジェクトを使用してPDF辞書を手動で構築および解析する必要があり、コードの複雑さとエラーの可能性が増大します。この抽象化レイヤーにより、PDFドキュメントを扱う必要があるもののPDF仕様の深い知識を必要としない開発者でもPDFBoxを利用できるようになります。
Apache PDFBoxのPDDocumentクラスを使用してPDFドキュメントを開く際、getCatalog()を呼び出すと、基礎となるカタログ辞書をラップしたPDDocumentCatalogインスタンスが返されます。このクラスは、ラップされたCOSDictionaryオブジェクトに内部的にアクセスし、型変換とオブジェクトのラッピングを自動的に実行するgetterおよびsetterメソッドを提供します。例えば、getPages()はカタログ辞書から/Pagesエントリを取得し、ドキュメントのページ階層を表すPDPageTreeオブジェクトを返します。setMetadata()などのメソッドにより、XMPメタデータストリームをドキュメントに添付でき、getStructureTreeRoot()はTagged PDFに必要な論理構造ツリーへのアクセスを提供します。このクラスは多くの構造の遅延初期化を処理し、必要な場合にのみ辞書エントリを作成します。アクセシビリティ機能を扱う際、getMarkInfo()は標準に従ってドキュメントがタグ付けされているかどうかを示すPDMarkInfoオブジェクを返します。PDDocumentCatalogメソッドを通じて行われた変更は基礎となる辞書構造を変更し、PDDocumentを保存する際にシリアライズされます。このクラスは高レベルAPIと低レベル辞書表現の間の一貫性を維持し、変更がPDF仕様の要件に準拠することを保証します。
- PDDocument – Apache PDFBoxでPDFドキュメント全体を表すメインクラス
- PDPageTree – カタログを通じてアクセス可能な階層的ページツリー構造を表す
- PDStructureTreeRoot – アクセシビリティのためのTagged PDFの論理構造ツリーのルート要素
- AcroForm – フォームフィールドとリソースを含むインタラクティブフォーム辞書
- COSDictionary – PDFBoxのCarousel Object Systemにおいて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
