Gestione delle funzionalità e delle opzioni installabili
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.
Alcune delle funzionalità o delle opzioni di una stampante potrebbero essere installabili. Ad esempio, una stampante potrebbe accettare un feeder busta facoltativo, che potrebbe o non essere attualmente collegato. Questo feeder busta deve essere descritto all'interno di un file GPD in due modi:
Come opzione per la funzionalità InputBin.
Come "funzionalità" installabile (anche se è davvero un'opzione), che consente all'utente di indicare se è effettivamente installato.
Per prima cosa, per specificare il feeder envelope, insieme a un feeder automatico, come opzioni per la funzionalità InputBin, è possibile usare le voci GPD seguenti.
*Feature: InputBin
{
*Name: "Input Bin"
*Option: AUTO
{
*Name: "Automatic Feeder"
*Command: CmdSelect {Command Attributes}
}
*Option: ENVFEED
{
*Name: "Envelope Feeder"
*Command: CmdSelect {Command Attributes}
}
}
Per rendere installabile il feeder envelope, sono necessarie voci GPD aggiuntive, come indicato di seguito:
*InstalledOptionName: "Installed"
*NotInstalledOptionName: "Not installed"
*Feature: InputBin
{
*Name: "Input Bin"
*Option: AUTO
{
*Name: "Automatic Feeder"
*Command: CmdSelect {Command Attributes}
}
*Option: ENVFEED
{
*Name: "Envelope Feeder"
*Command: CmdSelect {Command Attributes}
*Installable?: TRUE
*InstallableFeatureName: "Optional Envelope Feeder"
}
}
All'interno della voce *Option per il feeder envelope sono stati aggiunti due attributi:
*Installable? attribute indica che l'opzione è installabile.
L'attributo *InstallableFeatureName specifica una stringa di testo visualizzata da Unidrv in modo che l'utente possa indicare se l'opzione è effettivamente installata.
Ogni volta che *Installable? è impostato su TRUE per una funzionalità o un'opzione, Unidrv crea una funzionalità aggiuntiva per la visualizzazione della finestra delle proprietà. Si noti che, anche se l'elemento installabile è un'opzione, Unidrv crea una rappresentazione di funzionalità nella finestra delle proprietà. Questa funzionalità unidrv-sintetizzata è identificata dalla stringa fornita con *InstallableFeatureName. La funzionalità offre due opzioni, "Installato" e "Non installato" e consente all'utente di selezionare una di queste opzioni. Le stringhe "Installed" e "Not installed" vengono specificate con gli attributi *InstalledOptionName e *NotInstalledOptionName in modo da poterli modificare se altro testo è più appropriato.
Pertanto, per questo esempio, la finestra delle proprietà includerebbe una funzionalità InputBin, con etichetta Input Bin, che include due opzioni, con etichetta Feeder automatico e Feeder busta. La finestra delle proprietà include anche una funzionalità aggiuntiva, con etichetta Feeder busta facoltativa, con due opzioni, con l'etichetta Installato e Non installato. L'utente può selezionare Feeder busta solo in Contenitore di input se seleziona per la prima volta Installato in Feeder busta facoltativo.
A volte, è necessario indicare che alcune opzioni installabili non possono essere installate contemporaneamente o che non è possibile selezionare una determinata opzione non installabile se è installata un'altra opzione installabile. Per gestire queste situazioni, usare le voci GPD che specificano vincoli di opzione.
Non è possibile usare *Installable? attributo con funzionalità facoltative che richiedono una voce *DisabledFeatures. Per queste funzionalità, è necessario specificare in modo esplicito la funzionalità facoltativa con le opzioni "Installato" e "Non installato". Si supponga, ad esempio, che una stampante abbia un'unità duplex facoltativa. La funzionalità duplex (vedere Funzionalità standard) deve essere disabilitata se l'unità duplex non è installata. È necessario definire una funzionalità "Unità duplex facoltativa", con le opzioni "Installato" e "Non installato". All'interno della voce "Non installato" *Opzione, è necessario includere una voce *DisabledFeatures per la funzionalità Duplex. È possibile usare le voci GPD seguenti:
*Feature: DuplexUnit
{
*ConflictPriority: 3 *% Make priority higher than Duplex feature
*Name: "Optional Duplexing Unit"
*Option: Installed
{
*Name: "Installed"
}
*Option: NotInstalled
{
*Name: "Not Installed"
*DisabledFeatures: LIST(Duplex)
*Constraints: LIST (Duplex.LongEdge, Duplex.ShortEdge)
}
}
Assicurarsi di specificare anche eventuali vincoli di opzione pertinenti, come illustrato.