共用方式為


標準變數表達式

重要

新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。

如需詳細資訊,請參閱 新式列印平臺列印支援應用程式設計指南

當您在命令字串中指定自變數時,可以將自變數值指定為表達式。 此表達式可以使用標準變數目前值來執行作業。 命令字串中的每個標準變數表達式都會以大括弧 ({, } ) 分隔。

標準變數表示式可以包含下列元件的組合:

標準變數表達式不能包含內嵌巨集參考。

下表包含表達式運算符。

Operator 定義
Val1+Val2 加法
Val1-Val2
Val1/Val2 部門
Val1*Val2 乘法
Val1MODVal2 模數。 值是除以 Val1 為 Val2 的餘數。
maxVal1Val2 最大值。 Value 是 Val1 和 Val2 的最大值。
max_repeat (Val1 請參閱使用max_repeat一節。
minVal1Val2 最小值。 值為 Val1Val2最小值。
( ) 優先順序運算子。 如果未使用,則會使用 C 語言優先順序。

標準變數表達式不會修改指派給標準變數的值。 計算值會使用命令字串自變數類型規範所指定的格式,放在逸出序列中。

使用max_repeat

max_repeat的使用最好用範例來說明。 假設 GPD 檔案包含下列專案:

*Command:CmdXMoveRelRight{*Cmd:"<1B>["%d[0,9600]{max_repeat((DestXRel/4))}"a"}

這個命令包含類型為 %d 的單一自變數。 它也包含自變數範圍規格。 每當 Unidrv 將此命令傳送至印表機時,它會先計算 DestXRel/4,並判斷它是否在指定的範圍內。 如果計算值大於 9600,Unidrv 會重複傳送命令,最大值為 9600,直到傳送指定的值為止。 因此,如果 DestXRel/4 等於 20,000,Unidrv 會傳送下列命令:

<1B>[9600
<1B>[9600
<1B>[800

只有在符合下列條件時,才能使用max_repeat運算符:

  • 命令字串只包含單一自變數。

  • 自變數包含範圍規格。