PDF content stream operators
PDFコンテンツストリームオペレーターは、PDF文書内でテキスト、グラフィックス、画像をどのようにレンダリングするかを定義する特殊なコマンドトークンです。
PDFコンテンツストリームオペレーターは、PDF文書内でテキスト、グラフィックス、画像をどのようにレンダリングするかを定義する特殊なコマンドトークンです。これらのオペレーターは、
(
Citation: N.A., 2020
(N.A.).
(2020).
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プロセッサーに視覚要素のレンダリング方法を指示します。これらのオペレーターは、いくつかのカテゴリーに分類されます:
- グラフィックス状態オペレーター(例:
q、Q、cm、w):レンダリングパラメータの保存、復元、変更を行う - パス構築オペレーター(例:
m、l、c、re):ベクター図形を定義する - パス描画オペレーター(例:
S、f、B):パスの線描画または塗りつぶしを行う - テキストオペレーター(例:
BT、ET、Tf、Tj):テキストの配置と表示を行う - カラーオペレーター(例:
CS、SC、RG):線描画色と塗りつぶし色を設定する - XObjectオペレーター(例:
Do):画像やフォームなどの外部オブジェクトを呼び出す - マークドコンテンツオペレーター(例:
BMC、BDC、EMC):構造とアクセシビリティのためにコンテンツにタグを付ける
文書構造を記述する高レベルのPDFオブジェクトとは異なり、コンテンツストリームオペレーターは描画プリミティブレベルで動作し、グラフィックスレンダリングのアセンブリ言語命令に似ています。 ( Citation: N.A., 2020 (N.A.). (2020). 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の生成、操作、レンダリングを行う開発者にとって不可欠です。PDFライブラリを使用してプログラム的に文書を作成する場合、ライブラリは最終的に高レベルの描画コマンドをこれらのオペレーターに変換します。これらのオペレーターに関する知識により、開発者は以下のことが可能になります:
- レンダリングの問題をデバッグする:生のコンテンツストリームを検査して、要素が実際にどのように描画されているかを理解する
- PDFファイルサイズを最適化する:より効率的なオペレーターシーケンスを記述する
- カスタムPDF処理を実装する:標準ライブラリが提供する機能を超えた処理を行う
- アクセシビリティコンプライアンスを確保する:Tagged PDFコンテンツに対して ( Citation: N.A., 2014 (N.A.). (2014). 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仕様のルールに従っているかを確認する
アクセシビリティに焦点を当てた開発では、BDC(プロパティ付きマークドコンテンツの開始)やEMC(マークドコンテンツの終了)などのオペレーターが特に重要です。これらは、
(
Citation: PDF Association, 2023
PDF Association(2023). Retrieved from
https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
)
で概説されているように、構造ツリーが実際のコンテンツを参照できるようにします。
PDFコンテンツストリームオペレーターは、オペランドがオペレーターの前に置かれる後置記法の構文に従います。例えば、座標(100, 200)に幅50、高さ30の塗りつぶし矩形を描画するには、コンテンツストリームに次のように記述します:
100 200 50 30 re
f
ここで、reは4つの数値オペランドを持つ矩形オペレーターであり、fはオペランドを持たない塗りつぶしオペレーターです。
グラフィックス状態は、オペレーターがどのように機能するかの中心概念です。この状態は、オペレーターがコンテンツをレンダリングする方法に影響を与えるパラメータ(線幅、色、変換行列など)の集合です。q(グラフィックス状態の保存)やQ(グラフィックス状態の復元)などの一部のオペレーターは状態のスナップショットを管理し、後続の操作に永続的な影響を与えることなく一時的な変更を可能にします。
テキストレンダリングには、グラフィックス状態内に存在する特殊なテキスト状態が関与します。テキストオペレーターは、BT(テキスト開始)で始まりET(テキスト終了)で終わるテキストオブジェクト内に囲まれている必要があります。このブロック内で、Tf(フォントとサイズの設定)、Td(テキスト配置)、Tj(テキスト文字列の表示)などのオペレーターが連携してテキストをレンダリングします。
マークドコンテンツオペレーターは、視覚的なレンダリングに影響を与えることなくセマンティックなタグ付けを提供します。例えば:
/P <</MCID 0>> BDC
BT
/F1 12 Tf
(Hello World) Tj
ET
EMC
このシーケンスは、テキスト「Hello World」をマークドコンテンツ識別子0を持つ段落構造要素に属するものとしてマークし、 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で説明されているように、文書構造ツリーがアクセシビリティ目的でこの特定のコンテンツを参照できるようにします。
- Content streams(コンテンツストリーム) – ページの外観を定義するオペレーター命令を含むバイトシーケンス
- Graphics state(グラフィックス状態) – オペレーターがコンテンツを描画する方法に影響を与えるレンダリングパラメータの集合
- Marked content(マークドコンテンツ) – 視覚要素を論理構造に接続するコンテンツストリームのタグ付けされたセクション
- PDF imaging model(PDFイメージングモデル) – オペレーターが視覚出力を生成する方法を定義する包括的なレンダリングフレームワーク
- Text objects(テキストオブジェクト) – 文字コンテンツをレンダリングするBTとETで囲まれたテキストオペレーターのシーケンス
- (N.A.) (2020)
- (N.A.). (2020). 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)
- PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
- (N.A.) (2014)
- (N.A.). (2014). 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
