值巨集
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
值巨集用來指定一組您想要個別和重複插入一般印表機描述 (GPD) 檔案的一或多個值。 值可以是任何 GPD 實值類型。
下列規則適用於值巨集的使用:
GPD 檔案中的值巨集定義必須位於任何參考之前。
在根層級定義的值巨集值(也就是大括弧內),可透過定義它的 GPD 檔案,在定義它之後取得。 否則,值的範圍巨集是包含其定義的左右大括弧集合。
值巨集必須解析為其中 一個 GPD 實值型別。
如果所有值都是文字字串,則值巨集定義可以參考其他先前定義的值巨集,但值巨集無法參考本身。
值巨集不接受自變數。
如果您建立兩個具有相同名稱的值巨集,則第一個定義會生效,直到 GPD 剖析器遇到第二個定義為止。 第二個定義接著會取代第一個定義。 如果第二個定義的範圍結束,則會恢復第一個定義。
值巨集格式
若要在 GPD 檔案中定義一或多個值巨集,請使用下列格式:
*巨集: *ValueMacroGroupName { ValueMacroBody }
其中 ValueMacroGroupName 是唯一的名稱,而 ValueMacroBody 是一組唯一值名稱和相關聯的值,如下所示:
ValueMacroName : MacroValue
其中 ValueMacroName 是唯一巨集名稱,而 MacroValue 代表 GPD 實值類型。 (MacroValue 可以包含先前定義之值巨集的參考,只要解析的字串代表 GPD 實值類型即可。
例如,您可以定義一組常用命令前置詞的值巨集,如下所示:
*Macros: HP4L
{
LetterCmdPrefix: "<1B>&l2a8c1E<1B>*p0x0Y"
A4CmdPrefix: "<1B>&l26a8c1E<1B>*p0x0Y"
Env10CmdPrefix: "<1B>&l81a8c1E<1B>*p0x0Y"
}
ValueMacroGroupName (範例中的 HP4L) 是選擇性的,並被視為批注。
參考值巨集
若要參考值巨集,請使用下列格式:
= ValueMacroName
其中 ValueMacroName 是唯一的名稱,先前在定義巨集的 *Macros 專案中指定。
例如,若要在命令規格中參考其中一個 HP4L 巨集,您可以使用下列專案:
*Command: CmdSelect
{
*Cmd: =LetterCmdPrefix "<1B>*c0t5760x7680Y"
}
唯一一次您可以藉由結合巨集參考與非巨集值來指派值,就是當所有巨集定義和其他值都代表文字或命令子字串時,如範例所示。 在其他所有情況下,巨集參考必須代表要指派的整個值。