Condividi tramite


Vincoli di selezione

Importante

È consigliabile 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 stampanti.

Per altre informazioni, vedere la guida alla progettazione dell'app di supporto stampa.

Spesso, alcune opzioni per varie funzionalità della stampante non possono essere selezionate contemporaneamente. Ad esempio, se il feeder busta è selezionato, non è possibile selezionare le dimensioni di carta non invelope, ad esempio carta di dimensioni lettera o A4.

Per specificare combinazioni di opzioni della stampante che non possono essere selezionate contemporaneamente, usare *InvalidCombination o *Vincoli. Se un utente tenta di selezionare una combinazione di opzioni specificate come non valide, Unidrv rifiuta la selezione.

La voce *InvalidCombination ha il formato seguente:

*InvalidCombination : LIST ( FeatureName . OptionName , FeatureName . OptionName , ...)

dove FeatureName è il nome di una funzionalità e OptionName è il nome di un'opzione associata alla funzionalità.

Le opzioni elencate in una singola voce *InvalidCombination indicano un set di opzioni che non possono essere usate in combinazione. Ad esempio, la voce seguente specifica che la modalità colore CMYK non può essere usata con carta normale e 720 DPI.

*InvalidCombination: LIST(Resolution.720dpi, MediaType.Plain, ColorMode.CMYK)

Tutte le voci *InvalidCombination devono trovarsi a livello radice del file GPD, ovvero non all'interno delle parentesi graffe. Il numero di opzioni incluse in una voce non è limitato.

Se è necessario indicare solo una relazione di combinazione non valida tra due opzioni, è possibile usare una voce *Vincoli. Il formato è:

*Vincoli : FeatureName . OptionName

dove FeatureName è il nome di una funzionalità e OptionName è il nome di un'opzione associata alla funzionalità. Una voce *Vincoli deve essere inserita all'interno di una voce *Option. Ad esempio, per indicare che la carta di dimensioni lettera e A4 non può essere usata con il feeder busta, è possibile usare le voci seguenti:

*Feature: InputBin
{
    *Option: ENVFEED
    {
        *Constraints: PaperSize.Letter
        *Constraints: PaperSize.A4
    }
}

o, equivalentemente:

*Feature: InputBin
{
    *Option: ENVFEED
    {
        *Constraints: LIST(PaperSize.Letter, PaperSize.A4)
    }
}

Questi esempi specificano che se un utente tenta di selezionare il feeder della busta e la carta di dimensioni lettera, o il feeder di buste e la carta di dimensioni A4, Unidrv rifiuta la selezione.