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

BeginInlineImage

BeginInlineImageは、Apache PDFBoxにおいて、PDFコンテンツストリーム内に直接埋め込まれたインライン画像を処理するオペレータークラスです。

キーワード: begininlineimage, BeginInlineImage

概要

BeginInlineImageは、Apache PDFBoxにおいて、PDFコンテンツストリーム内に直接埋め込まれたインライン画像を処理するオペレータークラスです。別途リソースとして保存される外部画像XObjectとは異なり、インライン画像は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を処理する際、特に画像データを他のコンテンツオペレーターと密接に統合する必要がある文書において不可欠です。

定義

BeginInlineImageは、Apache PDFBoxライブラリにおける専用のオペレータークラスで、PDF構文における「BI」(Begin Inline Image)オペレーターに対応します。このクラスはコンテンツストリーム内でインライン画像定義の開始をマークし、画像辞書パラメーター、画像データ、およびインライン画像終了オペレーターと連携して動作します。PDFのリソース辞書に保存され文書全体で再利用可能な参照型画像XObjectとは異なり、インライン画像は必要な場所のコンテンツストリームに一度だけ現れる自己完結型のユニットです。BeginInlineImageオペレーターは、画像パラメーター(幅、高さ、色空間、コンポーネントあたりのビット数など)を含むシーケンスを開始し、その後に実際の圧縮または非圧縮画像データが続き、インライン画像終了マーカーで終了します。このアプローチは通常、別個のXObjectリソースを作成するオーバーヘッドが非効率的となる、小さな使い切り画像に使用されます。

重要性

JavaでPDF処理を行う開発者にとって、BeginInlineImageの理解は以下のような実用的な理由から極めて重要です。第一に、インライン画像はスキャン文書、フォーム、ロゴやアイコンが埋め込まれたPDFなどに一般的に見られるため、PDF文書内のすべての画像タイプを正確に抽出およびレンダリングできるようになります。第二に、プログラム的にPDFを作成または修正する際、開発者は画像サイズ、再利用性、文書構造などの要因に基づいてインライン画像と画像XObjectのどちらを使用するか選択する必要があります。一般的に、インライン画像は4KB未満の小さな使い切りグラフィックスに適しています。第三に、BeginInlineImageオペレーターの適切な処理は、アクセシビリティ準拠 ( 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文書においてインライン画像を適切にタグ付けすることで、スクリーンリーダーや支援技術が正しく処理できるようになります。最後に、PDFレンダリングの問題をデバッグする際には、インライン画像のエンコードとデコードの方法を理解することが必要になることが多く、このオペレータークラスに精通していることはトラブルシューティングにおいて有益です。

仕組み

BeginInlineImageオペレーターは、PDFコンテンツストリームにおける3段階のインライン画像シーケンスの一部として機能します。PDFパーサーがBIオペレーターに遭遇すると、PDFBoxのBeginInlineImageクラスはインライン画像辞書の処理を開始します。この辞書には、画像プロパティを定義する省略形のキーと値のペア(幅のW、高さのH、色空間のCS、コンポーネントあたりのビット数のBPCなど)が含まれています。辞書の後には、ID(image data)オペレーターが続き、実際のバイナリ画像データの開始をマークします。このデータは、DCTDecodeJPEG)やFlateDecode(ZIP)などのフィルターを使用して圧縮されている場合があります。シーケンスはEI(end inline image)オペレーターで終了します。PDFBoxのBeginInlineImage実装は、この構造を注意深く解析する必要があります。インライン画像構文は他の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 ) に従って様々なエンコードとフィルターの組み合わせを管理し、デコードされた画像データを抽出またはレンダリングするためのメソッドを提供します。文書処理中、このオペレーターはPDFBoxのグラフィックス状態およびレンダリングパイプラインと連携して、適切な変換行列を使用して正しい座標に画像を適切に配置および表示します。

関連用語

  • PDImageXObject – PDFのリソース辞書に保存され、文書全体で複数回参照可能な外部画像リソース
  • ContentStreamOperator – 描画およびテキストコマンドを処理するすべてのPDFコンテンツストリームオペレーターの基底クラス
  • COSStream – 関連する辞書を持つ圧縮または非圧縮データを含むPDFストリームオブジェクトを表すPDFBoxクラス
  • GraphicsState – 色空間、変換行列、画像の表示方法に影響を与えるレンダリングモードなど、PDFグラフィックスパラメーターのコンテナ
  • FilterInputStream – FlateやDCTなどの様々なフィルターを通じて圧縮画像データをデコードするためにPDFBoxが使用するJavaストリームクラス

出典

(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