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

ScratchFile

ScratchFileは、Apache PDFBoxライブラリのユーティリティクラスで、PDFドキュメント処理操作中にPDFデータの一時ストレージを提供します。

キーワード: scratchfile, ScratchFile

概要

ScratchFileは、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ドキュメントを扱う際、開発者は利用可能なメモリを超える大量のデータを処理する必要があることが多く、ScratchFileは一時ファイルストレージを自動的に管理することでこの課題に対処します。このクラスは、 ( 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 ) で規定されているアクセシビリティ機能を含む、大規模または複雑なPDFドキュメントを処理する際に特に重要です。

定義

ScratchFileは、Apache PDFBox内のJavaクラスで、PDF操作中の一時ストレージの抽象化レイヤーとして機能します。これにより、PDFBoxはすべてをメモリに保持するのではなく、中間データをディスクに書き込むことができます。これは、OutOfMemoryError例外を発生させることなく大きなPDFファイルを処理するために不可欠です。標準的なJavaの一時ファイルメカニズムとは異なり、ScratchFileはPDFワークフロー専用に設計されており、PDFBoxの内部アーキテクチャとシームレスに統合されています。このクラスは、不要になったときに自動的にクリーンアップされるスクラッチファイルを作成するメソッドを提供し、処理されるデータのサイズに応じてメモリベースまたはディスクベースのストレージを使用するように設定できます。

重要性

PDFドキュメント、特に ( Citation: , (). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) で定義されているTagged Contentなどの複雑な構造を含むドキュメントを扱う開発者にとって、ScratchFileは本番環境レベルのアプリケーションにとって不可欠です。このクラスにより、アプリケーションはヒープメモリの割り当てを比例的に増やすことなく、任意のサイズのPDFを処理できます。これは、複数のPDF操作が同時に実行される可能性があるサーバー環境において特に重要です。メモリ枯渇を防ぎ、アプリケーションの安定性を向上させるためです。適切なスクラッチファイル管理がない場合、大きなドキュメントの処理や、複数のPDFのマージ、画像の抽出、フォームフィールドの操作などのメモリ集約的な操作を実行しようとするアプリケーションは、クラッシュしたり応答しなくなったりする可能性があります。

仕組み

ScratchFileは、PDFBoxが処理ライフサイクル全体で使用する設定可能なストレージバックエンドを提供することで機能します。PDFBox操作が開始されると、開発者は通常ScratchFileインスタンスを作成(またはPDFBoxにデフォルト設定で作成させる)し、これにより一時データが保存される場所が決定されます。このクラスは書き込まれるデータのサイズを監視し、しきい値を超えた場合にメモリからディスクストレージに自動的に切り替えることができます。PDFの解析、レンダリング、変更などの操作中、PDFBoxは中間データをヒープメモリに保持するのではなく、スクラッチファイルに書き込みます。スクラッチファイルは一時データの場所への参照を保持し、必要に応じて読み取り/書き込みアクセスを提供します。PDF操作が完了し、ScratchFileオブジェクトが閉じられるかガベージコレクションされると、作成した一時ファイルを自動的に削除し、ディスク容量のリークが発生しないようにします。

関連用語

  • PDDocument – ScratchFileをメモリ管理に利用する、Apache PDFBoxのPDFドキュメントを表すメインクラス
  • COSStream – 圧縮データの保存にScratchFileを使用する可能性がある、PDFストリームオブジェクトを表すPDFBoxクラス
  • RandomAccessRead – ScratchFileが一時ストレージへのアクセスを提供するために実装する、データ読み取り用インターフェース
  • MemoryUsageSetting – ScratchFileと連携してメモリとディスク使用のしきい値を制御する、PDFBox設定クラス
  • PDFParser – PDF文書構造を解析する際にScratchFileを使用するコンポーネント

出典

(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
PDF Association (2023)
(). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
(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