Compartilhar via


Macros de blocos

Importante

A plataforma de impressão moderna é o meio preferido 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.

Uma macro de bloco é usada para delimitar um conjunto de entradas de arquivo GPD que você deseja inserir repetidamente em um arquivo GPD. Você pode incluir qualquer tipo de entrada em uma definição de macro de bloco, como instruções de recurso e opção, especificações de atributo e referências a macros de valor ou outras macros de bloco.

As seguintes regras se aplicam ao uso de macros de bloco:

  • Uma definição de macro de bloco em um arquivo GPD deve ser localizada antes de qualquer referência a ele.

  • Uma macro de bloco definida no nível raiz (ou seja, não dentro de chaves) está disponível por meio do arquivo GPD que a define, depois de definida. Caso contrário, o escopo de uma macro de bloco é o conjunto de chaves esquerda e direita que contém sua definição.

  • Uma definição de macro de bloco pode conter definições de macros de bloco e macros de valor adicionais.

  • Uma definição de macro de bloco pode fazer referência a outras macros de bloco e macros de valor definidas anteriormente, mas não pode fazer referência a si mesma.

  • As macros de bloco não aceitam argumentos.

  • Se as chaves estiverem incluídas em um corpo de macro, elas deverão ser emparelhadas (ou seja, deve haver um número igual de chaves esquerda e direita).

  • Se você criar duas macros de bloco 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, então, substitui a primeira. Se o escopo da segunda definição terminar, a primeira definição é restabelecida.

Formato de macro de bloco

Para definir uma macro de bloco em um arquivo GPD, use o seguinte formato:

*BlockMacro: BlockMacroName {BlockMacroBody}

em que BlockMacroName é um nome exclusivo e BlockMacroBody é um conjunto de uma ou mais entradas de arquivo GPD. Se BlockMacroBody contiver chaves, números iguais de chaves esquerda e direita ( {, } ) deverão ser incluídos.

Por exemplo, você pode definir uma macro de bloco chamada EnvelopeDefaults, que é definida da seguinte maneira:

*BlockMacro: EnvelopeDefaults
{
    *PrintableArea: PAIR(4646, 6738)
    *PrintableOrigin: PAIR(150, 150)
    *RotateSize: TRUE
}

Fazendo referência a macros de bloco

Para fazer referência a uma macro de bloco, use o seguinte formato:

*InsertBlock: =BlockMacroName

em que BlockMacroName é um nome exclusivo, especificado anteriormente na entrada *BlockMacro que define a macro.

Por exemplo, para fazer referência à macro EnvelopeDefaults em uma especificação de opção, é possível usar as seguintes entradas:

*Option: Env9
{
    *InsertBlock: =EnvelopeDefaults
}