PDEmbeddedFile
PDEmbeddedFileは、Apache PDFBox PDModel APIのクラスで、PDF文書内に埋め込まれたファイルへのプログラム的なアクセスを提供します。
PDEmbeddedFileは、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構造内に格納することが可能です。このクラスにより、開発者はPDFBoxの高レベルなオブジェクト指向インターフェースを使用して、これらの埋め込みファイルの読み取り、抽出、操作を行うことができます。
PDEmbeddedFileは、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の内部構造に直接格納された完全なファイルです。PDEmbeddedFileクラスは、低レベルのCOS(Carousel Object System)レイヤーオブジェクトをラップし、ファイル名、説明、MIMEタイプ、作成日時と更新日時、サイズ、実際のファイルデータストリームなどの埋め込みファイルプロパティにアクセスするための便利なメソッドを提供します。このクラスは、ファイル参照自体を記述するPDFileSpecificationとは異なり、PDEmbeddedFileは埋め込みファイルストリームデータとそれに関連するメタデータを具体的に扱います。
PDF文書を扱う開発者にとって、PDEmbeddedFileはPDF内の添付ファイルや補足ファイルを処理する必要があるアプリケーションに不可欠です。一般的な使用例として、PDF/A-3文書から埋め込まれたソースファイルの抽出、レポートに添付された補足文書やデータセットへのアクセス、PDFインボイスに埋め込まれたインボイスXMLデータ(ZUGFeRDやFactur-X形式など)の管理、PDF文書への添付ファイルのプログラム的な追加または削除などがあります。埋め込みファイルを扱う機能は、関連ファイルがPDF文書と共に移動する必要があるアーカイブ形式やアクセシビリティ要件において特に重要です。これは ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) で完全な文書パッケージとして参照されています。このクラスを理解することで、開発者は完全な文書セットの整合性を保持する堅牢な文書管理システムを構築できます。
PDEmbeddedFileクラスは、実際の埋め込みファイルデータを含むCOSStreamオブジェクトをラップすることで動作します。開発者は通常、PDFileSpecificationオブジェクトを通じてPDEmbeddedFileインスタンスにアクセスします。これらは、文書カタログの埋め込みファイル名前ツリー、ファイル添付アノテーション、関連ファイルエントリなど、さまざまなPDF構造から取得できます。このクラスは、サブタイプ(MIMEタイプ)、ファイルパラメータ(作成日時、更新日時、サイズ、チェックサム)などの埋め込みファイルプロパティのゲッターおよびセッターメソッド、埋め込みファイルのデータストリームを読み取るためのメソッドを提供します。埋め込みファイルを抽出するには、開発者はcreateInputStream()メソッドを呼び出してファイルのバイトを読み取るためのInputStreamを取得します。新しい埋め込みファイルを作成する際、開発者はファイルデータストリームでPDEmbeddedFileをインスタンス化し、適切なメタデータプロパティを設定します。埋め込みファイルストリームはPDFの標準圧縮フィルタを使用して圧縮でき、クラスは読み取り時に自動的に解凍を処理します。PDFBoxは、基盤となるCOSレベルの辞書エントリとストリームオブジェクトを管理し、開発者が ( 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構文ではなく、直感的なJavaオブジェクトを使用して埋め込みファイルを扱えるようにします。
- PDFileSpecification – ファイル参照を記述し、埋め込みファイルストリームを含むファイル仕様辞書を表します
- COSStream – バイナリデータを含むPDFストリームオブジェクトを表す低レベルのPDFBoxクラス
- PDDocumentCatalog – PDF文書のオブジェクト階層のルートで、埋め込みファイルのコレクションを維持します
- PDComplexFileSpecification – 複数のプラットフォーム固有のファイル表現をサポートする拡張ファイル仕様
- PDAnnotationFileAttachment – ファイル添付アイコンを表示し、埋め込みファイルにリンクするアノテーションタイプ
- (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/
