Macros de valor
Importante
A moderna plataforma de impressão é o meio preferido do Windows para comunicar com as impressoras. Recomendamos que utilize o controlador de classe da caixa de entrada IPP da Microsoft, juntamente com as Aplicações de Suporte de Impressão (PSA), para personalizar a experiência de impressão no Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.
Para obter mais informações, consulte o guia de design do aplicativo de suporte Print.
Uma macro de valor é usada para especificar um conjunto de um ou mais valores que você deseja inserir individualmente e repetidamente em um arquivo GPD (Descrição Genérica da Impressora). Os valores podem ser qualquer um dos tipos de valores GPD.
As seguintes regras se aplicam ao uso de macros de valor:
Uma definição de macro de valor dentro de um arquivo GPD deve ser localizada antes de qualquer referência a ele.
Uma macro de valor definida no nível raiz (ou seja, não dentro de chaves) está disponível no ficheiro GPD que a define, depois de ser definida. Caso contrário, o escopo de uma macro de valor é o conjunto de chaves esquerda e direita contendo sua definição.
Uma macro de valor deve ser resolvida para um dos tipos de valor GPD.
Uma definição de macro de valor pode fazer referência a outras macros de valor definidas anteriormente se todos os valores forem cadeias de texto, mas uma macro de valor não pode fazer referência a si mesma.
As macros de valor não aceitam argumentos.
Se você criar duas macros de valor com o mesmo nome, a primeira definição estará em vigor até que o analisador GPD encontre a segunda definição. A segunda definição substitui então a primeira. Se o âmbito de aplicação da segunda definição terminar, a primeira é restabelecida.
Formato de macro de valor
Para definir uma ou mais macros de valor em um arquivo GPD, use o seguinte formato:
*Macros: *ValueMacroGroupName { ValueMacroBody }
Onde ValueMacroGroupName é um nome exclusivo e ValueMacroBody é um conjunto de nomes de valor exclusivos e valores associados, da seguinte maneira:
ValueMacroName : MacroValue
Onde ValueMacroName é um nome de macro exclusivo e MacroValue representa um tipo de valor GPD . ( MacroValue pode incluir referências a macros de valor definidas anteriormente, desde que a cadeia de caracteres resolvida represente um tipo de valor GPD.)
Como exemplo, você pode definir macros de valor para um conjunto de prefixos de comando usados com freqüência da seguinte maneira:
*Macros: HP4L
{
LetterCmdPrefix: "<1B>&l2a8c1E<1B>*p0x0Y"
A4CmdPrefix: "<1B>&l26a8c1E<1B>*p0x0Y"
Env10CmdPrefix: "<1B>&l81a8c1E<1B>*p0x0Y"
}
ValueMacroGroupName (HP4L no exemplo) é opcional e tratada como um comentário.
Referenciando macros de valor
Para fazer referência a uma macro de valor, use o seguinte formato:
= ValueMacroName
Onde ValueMacroName é um nome exclusivo, especificado anteriormente na entrada *Macros que define a macro.
Por exemplo, para fazer referência a uma das macros HP4L dentro de uma especificação de comando, você pode usar as seguintes entradas:
*Command: CmdSelect
{
*Cmd: =LetterCmdPrefix "<1B>*c0t5760x7680Y"
}
O único momento em que você pode atribuir um valor combinando referências de macro com valores que não sejam de macro é quando todas as definições de macro e outros valores representam substrings de texto ou comando, conforme ilustrado no exemplo. Em todos os outros casos, a referência de macro deve representar todo o valor a ser atribuído.