Compartilhar via


Expressões de variáveis padrão

Importante

A plataforma de impressão moderna é o meio preferencial do Windows para se comunicar com as impressoras. Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft juntamente com PSA (Aplicativos de Suporte à Impressão) 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 Plataformade impressão moderna e o Guia de design do aplicativo de suporte de impressão.

Ao especificar argumentos em uma cadeia de caracteres de comando, você pode especificar o valor do argumento como uma expressão. Essa expressão pode executar operações usando os valores atuais das variáveis padrão. Cada expressão de variável padrão dentro de uma cadeia de caracteres de comando é delimitada por chaves ( {, } ).

Uma expressão de variável padrão pode consistir em uma combinação dos seguintes componentes:

Uma expressão de variável padrão não pode conter referências de macro inseridas.

Os operadores de expressão estão incluídos na tabela a seguir.

Operador Definições
Val1+Val2 Adição
Val1-Val2 Subtração
Val1/Val2 Divisão
Val1*Val2 Multiplicação
Val1MODVal2 Módulo. Valor é o resto da divisão de Val1 por Val2.
max ( Val1 , Val2 ) Máximo. O valor é o máximo de Val1 e Val2.
max_repeat ( Val1 ) Consulte a seção Usando max_repeat.
min ( Val1 , Val2 ) Mínimo. O valor é o mínimo de Val1 e Val2.
( ) Operadores de precedência. Se não for usado, a precedência da linguagem C será usada.

As expressões de variável padrão não modificam os valores atribuídos às variáveis padrão. O valor calculado é colocado na sequência de escape, usando o formato especificado pelo especificador de tipo de argumento de cadeia de caracteres de comando.

Usando max_repeat

O uso de max_repeat é melhor explicado com um exemplo. Suponha que um arquivo GPD contenha a seguinte entrada:

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

Este comando contém um único argumento, do tipo %d. Ele também contém uma especificação de intervalo de argumentos. Sempre que o Unidrv envia esse comando para a impressora, ele primeiro calcula o DestXRel/4 e determina se ele está dentro do intervalo especificado. Se o valor calculado for maior que 9600, o Unidrv enviará o comando repetidamente, com um valor máximo de 9600, até que o valor especificado seja enviado. Assim, se DestXRel/4 for igual a 20.000, o Unidrv enviará os seguintes comandos:

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

O operador max_repeat só pode ser usado se as seguintes condições forem atendidas:

  • Uma cadeia de caracteres de comando inclui apenas um único argumento.

  • O argumento inclui uma especificação de intervalo.