Save
Apache PDFBoxの`Save`クラスは、PDFドキュメント構造を出力ストリームまたはファイルにシリアライズするためのユーティリティコンポーネントです。
Apache PDFBoxのSaveクラスは、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仕様に従って、変更されたまたは新規作成されたPDFコンテンツを適切に保存する必要があります。このクラスは、PDFオブジェクト、相互参照テーブル、およびドキュメントトレーラーを正しい形式で書き込むという複雑なタスクを処理します。
Saveクラスは、PDFデータ構造を永続ストレージに書き込むためのApache PDFBox内部アーキテクチャの一部です。単純なファイルI/O操作とは異なり、SaveクラスはISO 32000標準に準拠してPDFドキュメントが書き込まれることを保証し、適切なオブジェクト番号付け、相互参照エントリ、およびファイル構造を維持します。このクラスは、開発者にシンプルなAPIを提供するPDDocument.save()のような高レベルメソッドとは異なり、より低い抽象レベルで動作し、PDF構文の実際のバイトレベルのシリアライゼーションを処理します。このクラスは、ヘッダー情報、ボディオブジェクト、相互参照テーブル、そして準拠するアプリケーションでPDFを読み取り可能にするファイルトレーラーの書き込みといった重要なタスクを管理します。
PDFBoxを使用するJava開発者にとって、出力プロセスに対するきめ細かい制御を必要とするカスタムPDF生成または操作ワークフローを実装する際に、Saveクラスを理解することは重要です。ほとんどの開発者は高レベルAPIを使用しますが、PDFの出力問題をデバッグする際、ファイルサイズを最適化する際、または増分更新のような特殊な機能を実装する際には、Saveクラスの知識が不可欠になります。
(
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ドキュメントを作成する場合、または
(
Citation: PDF Association, 2023
PDF Association(2023). Retrieved from
https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
)
で説明されているTagged PDF構造を実装する場合、Saveメカニズムによる適切なシリアライゼーションにより、構造要素とメタデータが正しく保持されることが保証されます。不適切な使用または設定は、破損したPDF、メタデータの損失、またはPDFリーダーでの検証に失敗するドキュメントを引き起こす可能性があります。
Saveクラスは、PDFドキュメントのオブジェクトグラフをトラバースし、PDFファイル構造の要件に従って各コンポーネントを適切な順序で書き込むことによって動作します。処理は、PDFヘッダー(バージョン識別子)の書き込みから始まり、次にすべての間接オブジェクト(ページ、フォント、画像、コンテンツストリーム)を含むボディ、次にオブジェクト番号をバイトオフセットにマッピングする相互参照テーブル、そして最後にドキュメントのメタデータとルートカタログへのポインタを含むトレーラー辞書が続きます。このクラスは、ドキュメント全体を書き込む完全保存や、デジタル署名を保持するために変更されたオブジェクトのみを追加する増分保存など、異なる保存モードを処理します。出力バッファリング、適切な場合のオブジェクトストリームの圧縮を管理し、すべてのオブジェクト参照が正しく解決されることを保証します。また、Saveクラスは暗号化が有効な場合にPDFBoxのセキュリティハンドラと連携し、機密コンテンツが出力ストリームに書き込まれる前に適切に暗号化されることを保証します。
- PDDocument – Apache PDFBoxでPDFドキュメントを表すメインクラスで、高レベルの保存メソッドを提供します
- COSWriter – COS(Carousel Object Structure)オブジェクトを出力ストリームに書き込む低レベルコンポーネント
- Incremental Save(増分保存) – ドキュメント全体を書き直すのではなく、既存のPDFファイルに変更を追加する保存モード
- Cross-Reference Table(相互参照テーブル) – PDFファイル内のオブジェクト識別子をファイル内のバイト位置にマッピングするインデックス構造
- PDFBox – PDFドキュメントの作成、操作、およびコンテンツ抽出のためのオープンソースJavaライブラリ
- (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
