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

PDResources

PDResourcesは、Apache PDFBox PDModel APIにおける高レベルのJavaクラスで、PDFページまたはフォームXObjectのリソース辞書へのプログラマティックなアクセスを提供します。

キーワード: pdresources, PDResources

概要

PDResourcesは、Apache PDFBox PDModel APIにおける高レベルのJavaクラスで、PDFページまたはフォームXObjectのリソース辞書へのプログラマティックなアクセスを提供します。この辞書には、 ( 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文書をプログラムで操作する際に、これらのリソースを読み取り、変更、管理できます。PDResourcesの理解は、コンテンツ抽出、PDF操作、アクセシビリティ修正などのタスクに不可欠です。

定義

PDResourcesは、PDFリソース辞書構造を表すApache PDFBoxのラッパークラスです。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 ) において、リソース辞書は、コンテンツストリームが名前付き参照を通じて参照するすべての外部リソースをカタログ化する、必須またはオプションのコンポーネント(コンテキストに依存)です。これらのリソースには、フォント(テキスト操作で参照される)、画像やフォームなどのXObject、ExtGStateグラフィックス状態パラメータ、色空間、パターン、シェーディング辞書が含まれます。

COSObject(Carousel Object System)を直接操作する低レベルのPDFBoxクラスとは異なり、PDResourcesは、基礎となるCOS構造を抽象化する型安全でオブジェクト指向のインターフェースを提供します。PDPagePDFormXObjectなどのクラスがPDResourcesオブジェクトを含む可能性がある一方で、PDResources自体は、これらのリソースを参照するコンテンツストリームには関与せず、リソース辞書の管理に特化しています。

このクラスは、PDPageResources(PDFBoxには存在しない)や直接的なCOSDictionary操作とは異なり、getFont()getXObject()getColorSpace()などの便利なメソッドを提供し、型変換やnullチェックを自動的に処理することで、コードをより読みやすく、エラーが発生しにくくします。

重要性

PDF操作を行う開発者にとって、PDResourcesは、ほぼすべての有意義な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 ) および ( Citation: , (). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) で説明されているTagged PDF文書を作成する際のアクセシビリティ修正では、適切な文字エンコーディングと意味構造を確保するために、フォントやその他のリソースを変更または検査する必要がよくあります。PDResourcesを通じてリソースを適切に管理しないと、開発者は検証に失敗したり、さまざまなPDFリーダーで正しくレンダリングされない不正なPDFを作成するリスクがあります。

このクラスは、パフォーマンス最適化においても重要です。既存のリソースを複製するのではなく再利用する方法を理解することで、ファイルサイズを大幅に削減できます。さらに、PDFレンダリングの問題をデバッグする際には、参照されているすべてのリソースが実際に存在し、正しく構成されていることを確認するために、リソース辞書を検査する必要があることがよくあります。

仕組み

PDResourcesは、実際のリソースデータを含むCOSDictionaryオブジェクトのファサードとして動作します。PDPageから(page.getResources()を介して)PDResourcesインスタンスを取得すると、ページの/Resourcesエントリに対して読み書きを行うオブジェクトが得られます。

このクラスは、PDF仕様のリソースカテゴリに基づいて、リソースを型付きコレクションに整理します。

フォントリソース: getFontNames()およびgetFont(COSName)を介してアクセスされ、リソース名(/F1、/F2など)をType 1、TrueType、またはその他のフォントタイプを表すPDFontオブジェクトにマッピングします。

XObjectリソース: getXObjectNames()およびgetXObject(COSName)を通じて取得され、ページに描画できる画像(PDImageXObject)とフォームXObject(PDFormXObject)の両方が含まれます。

グラフィックス状態リソース: getExtGState(COSName)を介して取得され、これらのPDExtendedGraphicsStateオブジェクトは、線幅、ブレンドモード、透明度設定などのレンダリングパラメータを定義します。

色空間リソース: getColorSpace(COSName)を通じてアクセスされ、色値の解釈方法を定義します。デバイス依存空間(DeviceRGBDeviceCMYK)や、パターンや特色などの特殊な空間が含まれます。

新しいリソースを追加する場合は、put(COSName, PDFont)などのメソッドを使用して、特定の名前でリソースを登録します。コンテンツストリームは、この名前を参照する必要があります(例: “/F1 12 Tf"でフォントF1を12ポイントに設定)。リソース辞書構造は、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 ) の要件に従います。

PDResourcesはリソースの継承もサポートしています。現在の辞書でリソースが見つからない場合、PDFBoxは親リソースを検索できます(ただし、これは通常、レンダリングコンテキストによって自動的に処理されます)。

関連用語

  • PDPage – PDFドキュメント内のページを表し、そのページのコンテンツストリームで使用可能なリソースを定義するPDResourcesオブジェクトを含みます
  • PDFont – テキスト表示操作で使用する前にPDResourcesディクショナリに登録する必要があるフォントリソースを表します
  • PDFormXObject – 独自のResourcesディクショナリを持つ再利用可能なコンテンツストリームで、テンプレート、透かし、または繰り返しグラフィックスに一般的に使用されます
  • Content Stream – ページコンテンツを記述し、Resourcesディクショナリ内の名前でリソースを参照するPDF演算子とオペランドのシーケンス
  • COSDictionary – PDResourcesがラップする低レベルのCarousel Object Systemディクショナリで、リソースエントリへの型安全なアクセスを提供します

出典

(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