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

PDF content stream operators

概要

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コンテンツストリームにおける描画操作と状態管理のコア命令セットを形成します。各オペレーターは、短いキーワード(テキスト表示のTjや矩形描画のreなど)と、その操作のパラメータを指定する0個以上のオペランドで構成されています。

定義

PDFコンテンツストリームオペレーターは、PDFイメージングモデルを構成する低レベルのコマンドです。これらはコンテンツストリームオブジェクト(通常はページコンテンツストリーム内)に現れ、PDFプロセッサーに視覚要素のレンダリング方法を指示します。これらのオペレーターは、いくつかのカテゴリーに分類されます:

  • グラフィックス状態オペレーター(例:qQcmw):レンダリングパラメータの保存、復元、変更を行う
  • パス構築オペレーター(例:mlcre):ベクター図形を定義する
  • パス描画オペレーター(例:SfB):パスの線描画または塗りつぶしを行う
  • テキストオペレーター(例:BTETTfTj):テキストの配置と表示を行う
  • カラーオペレーター(例:CSSCRG):線描画色と塗りつぶし色を設定する
  • XObjectオペレーター(例:Do):画像やフォームなどの外部オブジェクトを呼び出す
  • マークドコンテンツオペレーター(例:BMCBDCEMC):構造とアクセシビリティのためにコンテンツにタグを付ける

文書構造を記述する高レベルの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 ) によれば、これらのオペレーターは順次処理され、各操作は後続の操作に影響を与える現在のグラフィックス状態に影響を与える可能性があります。

全投稿を閲覧 gdoc_arrow_right_alt

Stencil mask

概要

ステンシルマスクは、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 コンテントストリーム内のイメージ XObject であり、ImageMask エントリが true に設定されていることで、イメージデータが実際の画像サンプルではなくマスクを表すことを示します ( 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 ) 。イメージは 1 ビットのサンプルデータで構成され、各ピクセルはオン(1)またはオフ(0)のいずれかです。「オン」とマークされた領域は現在の非ストローク色で塗りつぶされ、「オフ」の領域は既存の背景が表示されたままになります。

全投稿を閲覧 gdoc_arrow_right_alt

Stream debugger

概要

Stream debuggerは、開発者が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ページの視覚的外観を定義するグラフィックスオペレータとそのオペランドが含まれています。Stream debuggerは、PDFレンダリングエンジンがこれらの低レベル描画コマンドをどのように解釈するかを可視化し、複雑なレイアウトやレンダリングの問題をトラブルシューティングする際に不可欠なツールとなります。

定義

Stream debuggerは、PDFコンテンツストリーム解析専用に設計された診断ツールです。アプリケーションコードをステップ実行する汎用デバッガとは異なり、stream debuggerはPDFコンテンツストリームオブジェクト内に含まれる実際のオペレータシーケンスを解析して表示します。これらのツールは、圧縮およびエンコードされたバイトシーケンスをデコードし、テキスト配置コマンド、パス構築オペレータ、色設定命令などの各グラフィックスオペレータを人間が読める形式で表示します。Stream debuggerは通常、開発者がオペレータを一つずつ実行し、各ステップでグラフィックス状態を検査し、オペランドスタックを調べることを可能にします。これは、オペレータレベルのデバッグ機能を提供するのではなく、文書構造を分析するPDFバリデータやアクセシビリティチェッカーとは異なります。

重要性

Stream debuggerは、PDF生成、操作、またはレンダリングエンジンに取り組む開発者にとって非常に重要です。なぜなら、コンテンツストリームは非常に低いレベルで動作し、問題の診断が困難になる可能性があるためです。視覚的な出力が期待と一致しない場合—テキストが誤った位置に表示される、グラフィックスが正しくレンダリングされない、Tagged content ( Citation: , (). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) が不適切に構造化されているなど—stream debuggerを使用することで、どの特定のオペレータが問題を引き起こしたかを正確に特定できます。これは、PDFライターを実装する際や、異なるPDFプロセッサ間の相互運用性の問題をトラブルシューティングする際に特に重要です。Stream debugger機能がなければ、開発者は生のストリームデータを手動で検査するか、試行錯誤で修正を行う必要があり、これは時間がかかり、エラーが発生しやすくなります。

全投稿を閲覧 gdoc_arrow_right_alt

Stroke (S)

概要

Stroke (S) オペレーターは、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 ) 。このオペレーターが呼び出されると、moveto、lineto、curveto、rectangle オペレーションを通じて構築されたパスに対して、定義されたストロークパラメーターを適用し、視覚的な輪郭を描画します。パスの内部領域を塗りつぶす fill オペレーションとは異なり、stroking はパスの縁に沿って指定された線の特性で描画を行います。

定義

Stroke (S) オペレーターは、PDF コンテンツストリームにおけるパス描画オペレーターであり、PDF 構文では単一の文字「S」で表されます。このオペレーターは、グラフィックス状態で構築された現在のパスを消費し、ストローク輪郭としてレンダリングした後、グラフィックス状態からパスをクリアします ( 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 ) 。このオペレーターは、現在のグラフィックス状態から様々なストロークパラメーターを適用します。これには、ストロークカラー(RG、G、K などのオペレーターで設定)、線幅(w オペレーター)、線端スタイル(J オペレーター)、線結合スタイル(j オペレーター)、マイター制限(M オペレーター)、破線パターン(d オペレーター)が含まれます。

全投稿を閲覧 gdoc_arrow_right_alt

Text matrix (Tm)

概要

テキストマトリックス(Tm)は、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コンテンツストリーム内のテキストオブジェクトに存在する3×2の変換マトリックス(6つの数値:a、b、c、d、e、fで表現)です。すべてのグラフィックス要素に影響する現在の変換マトリックス(CTM)とは異なり、テキストマトリックスはテキストレンダリングに特化して適用され、BT(テキスト開始)オペレーターとET(テキスト終了)オペレーターの間にのみ存在します。テキストマトリックスは、テキストラインマトリックス(Tlm)と連携して、現在のテキスト位置と現在のテキスト行の開始位置の両方を追跡します。BTオペレーターでテキストオブジェクトが開始されると、TmとTlmの両方が単位マトリックス[1 0 0 1 0 0]に初期化されます。これは、テキストが原点から変換なしで開始されることを意味します。

重要性

PDF生成やテキスト抽出に携わる開発者にとって、テキストマトリックスの理解は正確なテキストの配置と操作に不可欠です。テキストマトリックスはテキストがページ上のどこに表示されるかに直接影響するため、プログラムによるテキスト配置、正確な位置情報を伴うテキスト抽出、テキスト検索機能の実装などのタスクで極めて重要です。テキストマトリックス操作の蓄積方法を誤解すると、テキストが誤った位置に表示されたり、確実に抽出できなくなったりする可能性があります。さらに、アクセシビリティツールやスクリーンリーダーは、論理的な読み上げ順序でコンテンツを提示するために適切なテキストマトリックスの使用に依存しており、これはPDF/UA ( 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 ) などの標準への準拠に影響します。

全投稿を閲覧 gdoc_arrow_right_alt

Text object

概要

テキストオブジェクトは、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 ) によれば、テキストオブジェクトはBT(Begin Text)オペレータとET(End Text)オペレータで区切られ、テキスト固有のオペレータとパラメータを適用できる独立したコンテキストを作成します。すべてのテキスト描画コマンドは、適切にレンダリングされるためにテキストオブジェクト内に配置される必要があります。

定義

テキストオブジェクトは、PDFコンテンツストリーム内の構造化されたブロックであり、BTオペレータで開始し、ETオペレータで終了します。このブロック内では、PDFプロセッサはTj(テキスト文字列の表示)、TJ(個別のグリフ配置によるテキスト表示)などのテキスト固有のオペレータや、TdやTmなどのテキスト配置オペレータを実行できます。テキストオブジェクトは、テキストマトリックス、テキスト行マトリックス、文字間隔、単語間隔、テキストレンダリングモードなど、独自のテキスト状態パラメータを保持します。

テキストオブジェクトは、テキスト操作専用の一時的なコンテキストを確立する点で、一般的なグラフィックス状態とは異なります。パス構築や描画などのグラフィックスオペレータはテキストオブジェクトの外側で実行できますが、テキスト表示オペレータはBT/ET区切り文字内でのみ有効です。この分離により、PDFプロセッサはテキストレンダリングを最適化し、テキスト配置のための独立した座標系を維持できます。

重要性

PDF生成や操作を行う開発者にとって、テキストオブジェクトを理解することは、いくつかの理由から不可欠です。

全投稿を閲覧 gdoc_arrow_right_alt