標準変数式
重要
Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください 。
コマンドの引数の値は式で指定することができます。 この式は、標準変数の現在の値を使用して演算を処理することができます。 コマンド文字列内の標準変数式はそれぞれ、中かっこ ({, }) で区切られます。
標準変数式は、次のコンポーネントの組み合わせで構成できます。
標準変数式には、マクロ参照を埋め込むことはできません。
式演算子を次の表に示します。
Operator | 定義 |
---|---|
Val1+Val2 | 追加 |
Val1-Val2 | 減算 |
Val1/Val2 | 部門 |
Val1*Val2 | 乗算 |
Val1MODVal2 | 剰余。 値は、Val1 を Val2 で除算した剰余です。 |
max ( Val1 , Val2 ) | 最大。 値は、Val1 と Val2 の最大値です。 |
max_repeat ( Val1 ) | max_repeat の使用セクションを参照。 |
min ( Val1 , Val2 ) | 最小。 値は、Val1 と Val2 の最小値です。 |
( ) | 優先順位演算子 使用しない場合、C 言語の優先順位が使用されます。 |
標準変数の式は、標準変数に割り当てられた値を変更しません。 計算値は、コマンド文字列引数の型指定子で指定された形式を使用して、エスケープ シーケンスに配置されます。
max_repeat の使用
max_repeat の使用方法については、例を用いて説明します。 GPD ファイルに次のエントリが含まれているとします。
*Command:CmdXMoveRelRight{*Cmd:"<1B>["%d[0,9600]{max_repeat((DestXRel/4))}"a"}
このコマンドには、%d 型 の引数が 1 つあります。 また、引数は範囲指定されています。 このコマンドをプリンターに送信すると、Unidrv は最初に DestXRel/4 を計算し、指定された範囲内にあるかどうかを判断します。 計算値が 9600 より大きい場合、Unidrv は、指定した値が送信されるまで、最大値が 9600 のコマンドを繰り返し送信します。 したがって、DestXRel/4 が 20,000 の場合、Unidrv は次のコマンドを送信します。
<1B>[9600
<1B>[9600
<1B>[800
max_repeat 演算子は、次の条件が満たされている場合にのみ使用できます。
コマンド文字列に含まれる引数が 1 つのみの場合。
引数が範囲指定されている場合。