Condividi tramite


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:

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.