標準變數表達式
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
當您在命令字串中指定自變數時,可以將自變數值指定為表達式。 此表達式可以使用標準變數的目前值來執行作業。 命令字串中的每個標準變數表達式都會以大括弧 ({, } ) 分隔。
標準變數表示式可以包含下列元件的組合:
標準變數表達式不能包含內嵌巨集參考。
下表包含表達式運算符。
Operator | 定義 |
---|---|
Val1+Val2 | 加法 |
Val1-Val2 | 減 |
Val1/Val2 | 部門 |
Val1*Val2 | 乘法 |
Val1MODVal2 | 模數。 值是除以 Val1 為 Val2 的餘數。 |
max ( Val1 , Val2 ) | 最大值。 Value 是 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 的單一自變數。 它也包含自變數範圍規格。 每當 Unidrv 將此命令傳送至印表機時,它會先計算 DestXRel/4,並判斷它是否在指定的範圍內。 如果計算值大於 9600,Unidrv 會重複傳送命令,最大值為 9600,直到傳送指定的值為止。 因此,如果 DestXRel/4 等於 20,000,Unidrv 會傳送下列命令:
<1B>[9600
<1B>[9600
<1B>[800
只有在符合下列條件時,才能使用max_repeat運算符:
命令字串只包含單一自變數。
自變數包含範圍規格。