Gestion des fonctionnalités et des options installables
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.
Certaines fonctionnalités ou options d’une imprimante peuvent être installables. Par exemple, une imprimante pourrait accepter un chargeur d’enveloppes en option, qui pourrait ou non être actuellement attaché. Ce chargeur d’enveloppes doit être décrit dans un fichier GPD de deux manières :
Comme une option pour la fonctionnalité InputBin.
Comme une « fonctionnalité » installable (même si c’est en réalité une option), permettant à l’utilisateur d’indiquer si elle est effectivement installée.
Tout d’abord, pour spécifier le chargeur d’enveloppes, ainsi qu’un chargeur automatique, comme options pour la fonctionnalité InputBin, les entrées GPD suivantes pourraient être utilisées.
*Feature: InputBin
{
*Name: "Input Bin"
*Option: AUTO
{
*Name: "Automatic Feeder"
*Command: CmdSelect {Command Attributes}
}
*Option: ENVFEED
{
*Name: "Envelope Feeder"
*Command: CmdSelect {Command Attributes}
}
}
Pour rendre le chargeur d’enveloppes installable, des entrées GPD supplémentaires sont nécessaires, comme suit :
*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"
}
}
Dans l’entrée *Option pour le chargeur d’enveloppes, deux attributs ont été ajoutés :
L’attribut *Installable? indique que l’option est installable.
L’attribut *InstallableFeatureName spécifie une chaîne de texte qu’Unidrv affiche afin que l’utilisateur puisse indiquer si l’option est effectivement installée.
Chaque fois que *Installable? est défini sur TRUE pour une fonctionnalité ou une option, Unidrv crée une fonctionnalité supplémentaire pour l’affichage de la feuille de propriétés. (Remarquez que même si l’élément installable est une option, Unidrv crée une représentation de fonctionnalité pour celui-ci dans la feuille de propriétés.) Cette fonctionnalité synthétisée par Unidrv est identifiée par la chaîne fournie avec *InstallableFeatureName. La fonctionnalité offre deux options, « Installé » et « Non installé », et permet à l’utilisateur de sélectionner l’une de ces options. Les chaînes « Installé » et « Non installé » sont spécifiées avec les attributs *InstalledOptionName et *NotInstalledOptionName afin que vous puissiez les modifier si d’autres textes sont plus appropriés.
Ainsi, pour notre exemple, la feuille de propriétés inclurait une fonctionnalité InputBin, étiquetée Input Bin, qui comprend deux options, étiquetées Chargeur automatique et Chargeur d’enveloppes. La feuille de propriétés inclurait également une fonctionnalité supplémentaire, étiquetée Chargeur d’enveloppes optionnel, avec deux options, étiquetées Installé et Non installé. L’utilisateur ne peut sélectionner Chargeur d’enveloppes sous Input Bin que s’il sélectionne d’abord Installé sous Chargeur d’enveloppes optionnel.
Parfois, il est nécessaire d’indiquer que certaines options installables ne peuvent pas être installées simultanément, ou qu’une certaine option non installable ne peut pas être sélectionnée si une autre option installable est installée. Pour gérer ces situations, utilisez les entrées GPD qui spécifient des contraintes d’option.
Vous ne pouvez pas utiliser l’attribut *Installable? avec des fonctionnalités optionnelles qui nécessitent une entrée *DisabledFeatures. Pour ces fonctionnalités, vous devez spécifier explicitement la fonctionnalité optionnelle avec les options « Installé » et « Non installé ». Par exemple, supposons qu’une imprimante possède une unité de recto verso optionnelle. La fonctionnalité Duplex (voir Fonctionnalités standard) doit être désactivée si l’unité de recto verso n’est pas installée. Vous devez définir une fonctionnalité « Unité de recto verso optionnelle », avec les options « Installé » et « Non installé ». Dans l’entrée *Option « Non installé », vous incluriez une entrée *DisabledFeatures pour la fonctionnalité Duplex. Les entrées GPD suivantes peuvent être utilisées :
*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)
}
}
Veillez également à spécifier toutes les contraintes d’option pertinentes, comme illustré.