Expressions de variables standard
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.
Lorsque vous spécifiez des arguments dans une chaîne de commande, vous pouvez spécifier la valeur de l'argument sous la forme d'une expression. Cette expression peut effectuer des opérations en utilisant les valeurs actuelles des variables standard. Chaque expression de variable standard dans une chaîne de commande est délimitée par des accolades ( {, } ).
Une expression de variable standard peut être constituée d'une combinaison des éléments suivants :
Zéro, une ou plusieurs variables standard
Valeurs numériques entières
Opérateurs d'expression
Une expression de variable standard ne peut pas contenir de références macro intégrées.
Les opérateurs d'expression sont présentés dans le tableau suivant.
Opérateur | Définitions |
---|---|
Val1+Val2 | Addition |
Val1-Val2 | Soustraction |
Val1/Val2 | Division |
Val1*Val2 | Multiplication |
Val1MODVal2 | Modulo. La valeur est le reste de la division de Val1 par Val2. |
max ( Val1 , Val2 ) | Maximum. La valeur est le maximum de Val1 et Val2. |
max_repeat ( Val1 ) | Voir la section Utilisation de max_repeat. |
min ( Val1 , Val2 ) | Minimum. La valeur est le minimum de Val1 et Val2. |
( ) | Opérateurs de précédence. S'ils ne sont pas utilisés, la préséance du langage C est utilisée. |
Les expressions de variables standard ne modifient pas les valeurs attribuées aux variables standard. La valeur calculée est placée dans la séquence d'échappement, en utilisant le format spécifié par le type d'argument de la chaîne de commande.
Utilisation de max_repeat
La meilleure façon d'expliquer l'utilisation de max_repeat est de le faire à l'aide d'un exemple. Supposons qu'un fichier GPD contienne l'entrée suivante :
*Command:CmdXMoveRelRight{*Cmd:"<1B>["%d[0,9600]{max_repeat((DestXRel/4))}"a"}
Cette commande contient un seul argument, de type %d. Il contient également une spécification de plage d'arguments. Chaque fois que l'Unidrv envoie cette commande à l'imprimante, il calcule d'abord DestXRel/4 et détermine s'il se trouve dans la plage spécifiée. Si la valeur calculée est supérieure à 9600, Unidrv envoie la commande à plusieurs reprises, avec une valeur maximale de 9600, jusqu'à ce que la valeur spécifiée soit envoyée. Ainsi, si DestXRel/4 est égal à 20 000, Unidrv envoie les commandes suivantes :
<1B>[9600
<1B>[9600
<1B>[800
L'opérateur max_repeat ne peut être utilisé que si les conditions suivantes sont remplies :
Une chaîne de commande ne comporte qu'un seul argument.
L'argument comprend une spécification de plage.