PDFXRefStream
PDFXRefStreamは、Apache PDFBox PDModel APIのクラスで、PDF文書内のクロスリファレンスストリームオブジェクトを表現します。
PDFXRefStreamは、Apache PDFBox PDModel APIのクラスで、PDF文書内のクロスリファレンスストリームオブジェクトを表現します。クロスリファレンスストリームは、従来のクロスリファレンステーブルに代わる圧縮形式で、PDF 1.5で導入され、 ( 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リーダーが文書全体のオブジェクトを見つけてアクセスするためのクロスリファレンスデータをプログラム的に読み取り、操作できます。
PDFXRefStreamは、Apache PDFBoxの高レベルJavaクラスで、PDFクロスリファレンスストリームの機能をカプセル化します。クロスリファレンスストリームは、PDFファイル内の間接オブジェクトのバイトオフセットと世代番号を保存する特殊なストリームオブジェクトです。従来のクロスリファレンステーブル(プレーンテキストとして表現)とは異なり、クロスリファレンスストリームはバイナリ形式を使用し、標準的なPDF圧縮フィルターで圧縮できるため、より空間効率に優れています。このクラスは、標準的な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仕様構造への準拠を維持しながら、クロスリファレンスデータの読み書きを行うメソッドを提供します。
PDFXRefStreamクラスは、従来のPDFXRefTableとは異なり、古いテキストベースのテーブル形式ではなく、バイナリのストリームベース表現を処理します。個々のクロスリファレンスエントリへのアクセス、オブジェクト参照のサブセクション管理、およびこの重要なインデックス情報を保存する圧縮ストリームデータの処理を行うメソッドを提供します。
PDF文書を扱うJava開発者にとって、PDFXRefStreamの理解は以下のような実務上の理由から不可欠です:
- 文書の修復と復元: 破損または損傷したPDFを扱う際、開発者は文書の機能を回復するためにクロスリファレンス構造にアクセスし、場合によっては再構築する必要があります
- PDFの最適化: 従来のテーブルではなくクロスリファレンスストリームを使用してPDFを作成または変更することで、特に大規模な文書においてファイルサイズを大幅に削減できます
- 低レベルの文書操作: 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文書を保証するには、文書の整合性を検証するためにクロスリファレンス構造を扱う必要がある場合があります
- パフォーマンスの最適化: クロスリファレンスストリームを適切に管理することで、特にインクリメンタル更新を扱う際のPDF解析とレンダリングのパフォーマンスが向上します
PDFXRefStreamクラスは、PDF文書内のクロスリファレンスデータを含む基礎となるストリームオブジェクトをラップすることで動作します。PDFが解析されると、PDFBoxはクロスリファレンスストリーム(通常は/Type /XRefディクショナリエントリでマークされています)を識別し、それらを処理するためにPDFXRefStreamオブジェクトをインスタンス化します。
内部的には、クロスリファレンスストリームには、設定可能な幅を持つ一連のフィールドとして編成されたエントリが含まれています。各エントリは、次の3つのタイプのいずれかを使用してオブジェクトの位置を記述します:
- タイプ0: 使用されていない空きオブジェクト
- タイプ1: ファイル内に非圧縮で保存されているオブジェクト(バイトオフセット付き)
- タイプ2: 圧縮オブジェクトストリーム内に保存されているオブジェクト
PDFXRefStreamクラスは、このバイナリデータ構造をデコードするメソッドを提供し、開発者がオブジェクトの位置を照会したり、新しいエントリを追加したり、既存のエントリを変更したりできるようにします。ストリームデータ自体はFlateDecodeなどのフィルターを使用して圧縮でき、クラスはエントリを読み取る際に透過的に展開処理を行います。
PDFを変更する際、開発者はPDFXRefStreamを使用して、オブジェクトが追加、削除、または再配置されるときにクロスリファレンス情報を更新できます。このクラスは、/W(フィールド幅)、/Size(エントリの総数)、/Index(サブセクションの境界)などの必須ディクショナリエントリを維持することを含め、
(
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
)
仕様に従って適切な構造が維持されることを保証します。
( 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 ) で指定されているアクセシビリティ機能を必要とする文書では、支援技術が文書の論理構造とコンテンツストリームを適切にナビゲートするために、正確なクロスリファレンス構造を維持することが重要です。
- Cross-Reference Table(クロスリファレンステーブル) – PDF 1.5以前に使用されていた、PDF文書内のオブジェクト位置情報を保存するための従来のテキストベース形式
- Object Stream(オブジェクトストリーム) – 圧縮されたPDFオブジェクトを含む特殊なストリームタイプで、クロスリファレンスストリームのタイプ2エントリによって参照されます
- Indirect Object(間接オブジェクト) – オブジェクト番号と世代番号を使用して他のオブジェクトから参照できるPDFオブジェクトで、クロスリファレンス構造で追跡されます
- PDDocument – PDF文書全体を表すApache PDFBoxのメインクラスで、クロスリファレンス情報を含み管理します
- Incremental Update(インクリメンタル更新) – ファイルの末尾に変更を追加する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
- (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
