Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
PDF開発用語集 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

RandomAccessWrite

RandomAccessWriteは、Apache PDFBoxライブラリにおけるインターフェースであり、ランダムアクセス可能な出力ストリームにデータを書き込む必要があるクラスに対して契約を提供します。

キーワード: randomaccesswrite, RandomAccessWrite

概要

RandomAccessWriteは、Apache PDFBoxライブラリにおけるインターフェースであり、ランダムアクセス可能な出力ストリームにデータを書き込む必要があるクラスに対して契約を提供します。このインターフェースは、プログラムによるPDF文書の作成と操作における基本的な構成要素として機能し、開発者がファイル構造内の任意の位置にバイトデータを書き込むことを可能にします。このインターフェースは、PDF仕様 ( Citation: N.A., (N.A.). (). 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仕様は、ポータブルドキュメントフォーマットファイルの構造と要件を定義しています。

定義

RandomAccessWriteは、Apache PDFBoxにおけるJavaインターフェースであり、ランダムアクセス操作をサポートする出力先にデータを書き込むためのメソッドを定義します。ストリームの末尾にのみデータを追加する順次書き込み操作とは異なり、RandomAccessWriteは開発者が出力内の任意の位置にデータを書き込み、書き込み位置を前後に移動し、既存のデータを上書きすることを可能にします。このインターフェースには通常、write(byte[])write(int)seek(long)length()などのメソッドが含まれており、書き込み位置の制御と出力の現在のサイズの追跡を行います。このインターフェースの実装には、RandomAccessBuffer(メモリ内操作用)とRandomAccessFile(ファイルベース操作用)があり、開発者が文書を確定する前にPDFデータをどのように処理するかについて柔軟性を提供します。

重要性

PDF生成と操作を扱う開発者にとって、RandomAccessWriteは重要です。なぜなら、PDFファイルは文書全体のバイトオフセットを参照するクロスリファレンステーブルとトレーラー情報を含む特定の構造を必要とするためです ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) 。PDFを構築する際、クロスリファレンステーブルのような特定の構造要素は、文書コンテンツ全体が完成するまで書き込むことができませんが、ファイル内の特定の位置に配置する必要があります。RandomAccessWriteはこの非線形の書き込みパターンを可能にし、PDFBoxが1回のパスでコンテンツを書き込み、その後シークバックしてヘッダー、クロスリファレンス、その他の構造要素を更新することで、有効なPDF文書を構築できるようにします。この機能は、Tagged PDFコンテンツ構造を含むアクセシブルなPDFを作成する際に特に重要です。これらは初期コンテンツ生成後にメタデータと構造情報の更新を必要とする場合があるためです ( Citation: N.A., (N.A.). (). 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 )

仕組み

RandomAccessWriteは、次のバイトがどこに書き込まれるかを決定する内部書き込み位置ポインタを維持することで動作します。PDF文書が作成される際、PDFBoxはRandomAccessWriteの実装(パフォーマンスのために多くの場合RandomAccessBuffer)を使用して文書データを蓄積します。ライブラリはPDFオブジェクトを順次書き込みながらそのバイトオフセットを追跡し、ファイルの以前の部分を更新する必要がある場合や末尾にクロスリファレンステーブルを追加する場合にseek()メソッドを使用して書き込みポインタを再配置します。例えば、PDFを確定する際、PDFBoxはまず文書カタログとページコンテンツを書き込み、それらのバイト位置を記録し、ファイルの末尾にシークし、記録された位置を含むクロスリファレンステーブルを書き込み、最後にトレーラー辞書を追加します。インターフェースのlength()メソッドにより、PDFBoxはPDFオブジェクトのファイルオフセットを決定できます。これは、PDFリーダーが文書構造内でオブジェクトを効率的に検索できるようにするクロスリファレンステーブルを作成するために不可欠です ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html )

関連用語

  • COSDocument – PDFBoxにおけるPDF文書のメモリ内表現で、シリアライゼーションにRandomAccessWriteを使用します
  • PDFBox – RandomAccessWriteを実装する、PDF文書の作成と操作のためのオープンソースJavaライブラリ
  • Cross-Reference Table(クロスリファレンステーブル) – オブジェクトのバイトオフセットを格納するPDF構造コンポーネントで、作成にランダムアクセス書き込みを必要とします
  • RandomAccessRead – PDFの解析時にランダムアクセスソースからデータを読み取るための対応インターフェース
  • PDDocument – PDF文書を表すPDFBoxの高レベルクラスで、保存時に内部的にRandomAccessWriteを使用します

出典

(N.A.) (2020)
(N.A.). (). 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.). (). 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