Macros de valeur
Important
La plateforme d’impression moderne est le moyen privilégié de Windows pour communiquer avec les imprimantes. Nous vous recommandons d’utiliser le pilote de classe IPP en boîte de Microsoft, ainsi que les applications de support d’impression (PSA), pour personnaliser l’expérience d’impression dans Windows 10 et 11 pour le développement de périphériques d’impression.
Pour plus d’informations, veuillez consulter la section Plateforme d’impression moderne et le Guide de conception des applications de support d’impression.
Une macro de valeur est utilisée pour spécifier un ensemble d’une ou plusieurs valeurs que vous souhaitez insérer individuellement et de manière répétée dans un fichier de Description Générique d’Imprimante (GPD). Les valeurs peuvent être de n’importe quel type de valeur GPD.
Les règles suivantes s’appliquent à l’utilisation des macros de valeur :
Une définition de macro de valeur dans un fichier GPD doit être située avant toute référence à celle-ci.
Une macro de valeur définie au niveau racine (autrement dit, pas à l’intérieur des accolades) est disponible à travers le fichier GPD qui le définit, après qu’il soit défini. Dans le cas contraire, la portée d’une macro de valeur est l’ensemble des accolades gauche et droite contenant sa définition.
Une macro de valeur doit se résoudre en l’un des types de valeur GPD.
Une définition de macro de valeur peut référencer d’autres macros de valeur précédemment définies si toutes les valeurs sont des chaînes de texte, mais une macro de valeur ne peut pas se référencer elle-même.
Les macros de valeur n’acceptent pas d’arguments.
Si vous créez deux macros de valeur avec le même nom, la première définition est en vigueur jusqu’à ce que l’analyseur syntaxique (parser) GPD rencontre la deuxième définition. La deuxième définition remplace alors la première. Si la portée de la deuxième définition se termine, la première définition est rétablie.
Format de macro de valeur
Pour définir une ou plusieurs macros de valeur dans un fichier GPD, utilisez le format suivant :
*Macros : *ValueMacroGroupName { ValueMacroBody }
Où ValueMacroGroupName est un nom unique et ValueMacroBody est un ensemble de noms de valeurs uniques et de valeurs associées, comme suit :
ValueMacroName : MacroValue
Où ValueMacroName est un nom de macro unique, et MacroValue représente un type de valeur GPD. (MacroValue peut inclure des références à des macros de valeur précédemment définies, tant que la chaîne résolue représente un type de valeur GPD).
Par exemple, vous pouvez définir des macros de valeur pour un ensemble de préfixes de commande fréquemment utilisés comme suit :
*Macros: HP4L
{
LetterCmdPrefix: "<1B>&l2a8c1E<1B>*p0x0Y"
A4CmdPrefix: "<1B>&l26a8c1E<1B>*p0x0Y"
Env10CmdPrefix: "<1B>&l81a8c1E<1B>*p0x0Y"
}
ValueMacroGroupName (HP4L dans l’exemple) est facultatif et traité comme un commentaire.
Référencement des macros de valeur
Pour référencer une macro de valeur, utilisez le format suivant :
= ValueMacroName
Où ValueMacroName est un nom unique, précédemment spécifié dans l’entrée *Macros qui définit la macro.
Par exemple, pour référencer l’une des macros HP4L dans une spécification de commande, vous pouvez utiliser les entrées suivantes :
*Command: CmdSelect
{
*Cmd: =LetterCmdPrefix "<1B>*c0t5760x7680Y"
}
La seule fois où vous pouvez attribuer une valeur en combinant des références de macro avec des valeurs non-macro est lorsque toutes les définitions de macro et autres valeurs représentent des textes ou des sous-chaînes de commande, comme illustré dans l’exemple. Dans tous les autres cas, la référence macro doit représenter la valeur entière à attribuer.