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

InstructionSequence

InstructionSequenceは、Apache PDFBoxライブラリにおいて、PDFページ上のグラフィックス、テキスト、その他の視覚要素をレンダリングするために使用されるPDFコンテンツストリーム命令のシーケンスを表すクラスです。

キーワード: instructionsequence, InstructionSequence

概要

InstructionSequenceは、Apache PDFBoxライブラリにおいて、PDFページ上のグラフィックス、テキスト、その他の視覚要素をレンダリングするために使用される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ドキュメント内のコンテンツがどのように表示されるかを定義する低レベルの描画コマンドが含まれています。このクラスは、Java開発者がPDFファイルを操作する際に、これらの命令シーケンスを解析、分析、操作するためのプログラム的なアクセスを提供します。

定義

InstructionSequenceは、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 ) で定義されたスタックベースのプログラミング言語を使用してページコンテンツを記述するPDFドキュメントの中核的なメカニズムです。

完全なページ構造やドキュメント要素を表す高レベルのPDFBoxクラスとは異なり、InstructionSequenceは、テキスト配置(Tm、Td)、テキスト表示(Tj、TJ)、パス構築(m、l、c)、グラフィックス状態の変更(q、Q、gs)などの個々のPDFコマンドの粒度レベルで動作します。シーケンス内の各命令は、演算子(PDFコマンドキーワード)と0個以上のオペランド(そのコマンドのパラメータ)で構成されます。

このクラスは、生のコンテンツストリーム解析とは異なり、開発者がバイトストリームを手動で解析することなく、命令を反復処理し、そのコンポーネントを調査し、レンダリングパイプラインを理解できる構造化されたオブジェクト指向の表現を提供します。

重要性

PDFドキュメントを扱う開発者にとって、InstructionSequenceは、コンテンツのレンダリング方法を理解または変更する必要があるタスクのための本質的な低レベルアクセスを提供します。これは特に以下の場合に重要です。

  • 構造化コンテンツの抽出: テキストの配置と書式設定を分析するには、テキスト表示演算子とそのパラメータを理解して、特に ( 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ツールを作成する開発者は、墨消し、透かし、コンテンツ変換などの機能を実装するために、コンテンツストリームを命令ごとに処理する必要があります。

  • タグ付きコンテンツの操作: タグ付きPDF構造 ( Citation: , (). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) を扱う場合、構造を定義するマーク付きコンテンツ演算子(BDC、EMC)が命令シーケンス内に埋め込まれているため、コンテンツストリームを理解することが基本となります。

仕組み

InstructionSequenceは、解析されたPDFコンテンツストリームデータのコンテナとして動作します。PDFBoxがページのコンテンツストリームを処理する際、ストリームを個々の演算子とオペランドにトークン化し、これらの命令を実行順序で維持するInstructionSequenceオブジェクトを構築します。

技術的なワークフローは通常、次のようになります。

  1. 解析: PDFBoxのコンテンツストリームパーサーは、PDFページオブジェクトから生のバイトストリームを読み取り、演算子(通常は1文字または2文字のコマンド)とその前のオペランド(数値、文字列、名前、配列など)を識別します。

  2. 命令の表現: 各命令は、演算子とそれに関連するオペランドを含むオブジェクトとして保存されます。たとえば、テキスト表示コマンド[(Hello) 100 (World)] TJは、TJ演算子と配列オペランドを持つ単一の命令として表現されます。

  3. 順次アクセス: 開発者はInstructionSequenceを反復処理して各命令を順番に調査できます。これは、PDFレンダラーがストリームを処理する方法を反映しています。これにより、グラフィックス状態の変更などの操作が後続の命令に影響を与えるPDFレンダリングのステートフルな性質が維持されます。

  4. コンテンツビジターとの統合: InstructionSequenceは、PDFBoxのVisitorパターン実装と連携し、開発者がシーケンスをトラバースしながら特定の演算子に応答するカスタムハンドラーを定義できるようにします。

このクラスは、 ( 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コンテンツストリーム実行モデルを尊重します。このモデルでは、命令が暗黙のグラフィックス状態マシンを変更し、テキストの書式設定、色、変換、クリッピングを制御します。

関連用語

  • Content Stream(コンテンツストリーム) – ページコンテンツのレンダリング命令を含むPDF内の生のバイトシーケンス
  • PDF Operator(PDF演算子) – 特定のレンダリング操作を実行するコンテンツストリーム内の個々のコマンド
  • Graphics State(グラフィックス状態) – PDFコンテンツのレンダリング方法を制御するパラメータのコレクション。さまざまな演算子によって変更される
  • PDPageContentStream – PDFページにコンテンツストリームを書き込むためのApache PDFBoxクラス
  • Marked Content(マーク付きコンテンツ) – アクセシビリティのためにコンテンツを構造要素に関連付けるコンテンツストリーム内のタグ付きセクション

出典

(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