次の方法で共有


標準変数式

重要

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 ) 最小。 値は、Val1Val2 の最小値です。
( ) 優先順位演算子 使用しない場合、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 つのみの場合。

  • 引数が範囲指定されている場合。