Espressioni di variabile standard
Importante
La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. Ti consigliamo di usare il driver di classe IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi per stampanti.
Per altre informazioni, vedere Piattaforma di stampa moderna e guida alla progettazione dell'app di supporto per la stampa.
Quando si specificano argomenti in una stringa di comando, è possibile specificare il valore dell'argomento come espressione. Questa espressione può eseguire operazioni usando i valori correnti delle variabili standard. Ogni espressione di variabile standard all'interno di una stringa di comando è delimitata da parentesi graffe ( {, } ).
Un'espressione di variabile standard può essere costituita da una combinazione dei componenti seguenti:
Zero, una o più variabili standard
Operatori di espressione
Un'espressione di variabile standard non può contenere riferimenti di macro incorporati.
Gli operatori di espressione sono inclusi nella tabella seguente.
Operatore | Definizioni |
---|---|
Val1+Val2 | Aggiunta |
Val1-Val2 | Sottrazione |
Val1/Val2 | Divisione |
Val1*Val2 | Moltiplicazione |
Val1MODVal2 | Modulo. Il valore è il resto della divisione di Val1 per Val2. |
max ( Val1 , Val2 ) | Massimo. Il valore è il massimo di Val1 e Val2. |
max_repeat ( Val1 ) | Vedere la sezione Uso di max_repeat . |
min ( Val1 , Val2 ) | Minimo. Il valore è il valore minimo di Val1 e Val2. |
( ) | Operatori di precedenza. Se non viene utilizzata, viene usata la precedenza del linguaggio C. |
Le espressioni di variabile standard non modificano i valori assegnati alle variabili standard. Il valore calcolato viene inserito nella sequenza di escape, usando il formato specificato dall'identificatore di tipo di argomento della stringa di comando.
Uso di max_repeat
L'uso di max_repeat è illustrato meglio con un esempio. Si supponga che un file GPD contenga la voce seguente:
*Command:CmdXMoveRelRight{*Cmd:"<1B>["%d[0,9600]{max_repeat((DestXRel/4))}"a"}
Questo comando contiene un singolo argomento, di tipo %d. Contiene anche una specifica dell'intervallo di argomenti. Ogni volta che Unidrv invia questo comando alla stampante, calcola prima DestXRel/4 e determina se è compreso nell'intervallo specificato. Se il valore calcolato è maggiore di 9600, Unidrv invia ripetutamente il comando, con un valore massimo pari a 9600, fino a quando non viene inviato il valore specificato. Pertanto, se DestXRel/4 è uguale a 20.000, Unidrv invia i comandi seguenti:
<1B>[9600
<1B>[9600
<1B>[800
L'operatore max_repeat può essere usato solo se vengono soddisfatte le condizioni seguenti:
Una stringa di comando include solo un singolo argomento.
L'argomento include una specifica di intervallo.