Operand
Operandは、PDFコンテンツストリーム内でoperatorの前に現れる値または値の並びであり、そのoperatorが機能を実行するために必要なパラメータを提供します。
Operandは、PDFコンテンツストリーム内でoperatorの前に現れる値または値の並びであり、そのoperatorが機能を実行するために必要なパラメータを提供します。PDFが使用するPostScriptベースの構文 ( 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 ) では、operandは前置記法で記述されます。つまり、それらを消費するoperatorよりも前にスタック上に配置される必要があります。このoperandとoperatorのペアリングは、PDFコンテンツストリーム内のすべてのグラフィックスおよびテキストコマンドの基本構造を形成します。
Operandは、PDFのoperatorにパラメータを与えるデータ値であり、どのようなアクションを実行すべきか、またどのような特性で実行すべきかを定義します。Operatorは通常、特定のアクションをトリガーする短いアルファベットのトークンですが、operandはそれとは異なり、数値、文字列、名前、配列、または必要な入力データを提供するその他のPDFオブジェクトになり得ます。例えば、100 200 mというコマンドでは、数値100と200がx座標とy座標を指定するoperandであり、mが現在位置をその場所に移動するoperatorです。
Operandは実行可能なコマンドではなく受動的なデータである点で、operatorとは異なります。また、operandはコンテンツストリーム内でoperatorのパラメータとして機能する値を特に指すため、一般的な文脈におけるPDFオブジェクトとも区別されます。必要なoperandの数と型は、PDF標準の各operator仕様によって厳密に定義されており、誤った数や型のoperandを提供すると、不正なコンテンツストリームになります。
Operandの理解は、プログラムによるPDFコンテンツの生成、既存PDFの解析、またはPDFレンダリングエンジンの実装など、PDFコンテンツストリームを扱う開発者にとって不可欠です。正しいoperandの順序により、PDFビューアが描画コマンド、テキストの配置、グラフィックス状態の変更を適切に解釈できるようになります。Operandの値や順序に誤りがあると、レンダリングの失敗、歪んだ出力、または検証に失敗するドキュメントにつながる可能性があります。
PDF生成ライブラリやツールを構築する開発者にとって、PDF構文規則に従ってoperandを適切にフォーマットすることは、有効なドキュメントを作成するために重要です。これには、データ型の要件(整数と実数の違い)、特定の操作の値範囲、operand処理のスタックベースの性質を理解することが含まれます。PDFレンダリングの問題をデバッグする際には、コンテンツストリーム内のoperandの値を調べることで、視覚的な不一致の原因が明らかになることがよくあります。
PDFコンテンツストリームは、PostScriptから継承したスタックベースのモデルを使用してoperandを処理します。PDFインタープリターがコンテンツストリームを読み込むと、遭遇したoperandをoperandスタックにプッシュします。Operatorに到達すると、必要な数のoperandをスタックから逆順にポップし、それらを処理し、後続の操作のために結果をスタックにプッシュバックする場合があります。
Operatorごとに必要なoperandの数と型は異なります。例えば、l(lineto)operatorはx座標とy座標を表す2つの数値operandを必要とし、SCN(set color)operatorは現在のカラースペースに応じて1つから4つのoperandを必要とする場合があります。Tm(set text matrix)のような複雑なoperatorは、変換行列を定義する6つの数値operandを必要とします。
Operandの型には以下が含まれます:
- 数値:座標、寸法、パラメータのための整数または実数
- 文字列:テキストコンテンツのためのリテラル文字列または16進文字列
- 名前:スラッシュで始まる名前付きリソースまたは識別子
- 配列:角括弧で囲まれた値の並び
- ブール値:バイナリパラメータのためのtrueまたはfalse値
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 ) は、各operatorのoperand要件を厳密に定義しており、operandが現れる順序や値に対する制約も含まれます。コンテンツストリームプロセッサは、これらの要件への準拠を保証するために、operandのシーケンスを検証する必要があります。
- Operator – operandの後に続き、それらの値を使用して操作を実行するコマンドトークン
- Content Stream – ページコンテンツとグラフィックスを定義するoperandとoperatorのシーケンス
- Graphics State – operatorがコンテンツをレンダリングする方法を制御するパラメータの集合
- Stack – operatorがそれらを消費する前にoperandを保持するために使用されるデータ構造
- PostScript – PDFがそのoperandとoperatorの構文を継承した言語の基礎
- (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
