Partager via


Gestion des fonctionnalités et options installables

Important

Nous vous recommandons d’utiliser le pilote de classe de boîte de réception IPP 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 d’appareils d’imprimante.

Pour plus d’informations, consultez le guide de conception d’application de prise en charge de l’impression.

Certaines des fonctionnalités ou options d’une imprimante peuvent être installables. Par exemple, une imprimante peut accepter un chargeur d’enveloppe facultatif, qui peut ou non être actuellement attaché. Ce chargeur d’enveloppe doit être décrit dans un fichier GPD de deux manières :

  • En option pour la fonctionnalité InputBin.

  • En tant que « fonctionnalité » installable (même s’il s’agit vraiment d’une option), qui permet à l’utilisateur d’indiquer si elle est réellement installée.

Tout d’abord, pour spécifier le chargeur d’enveloppe, ainsi qu’un chargeur automatique, comme options pour la fonctionnalité InputBin, les entrées GPD suivantes peuvent ê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’enveloppe 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 du chargeur d’enveloppe, deux attributs ont été ajoutés :

  • *Installable ? indique que l’option est installable.

  • L’attribut *InstallableFeatureName spécifie une chaîne de texte affichée par Unidrv afin que l’utilisateur puisse indiquer si l’option est réellement 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. (Notez 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 unidrv est identifiée par la chaîne fournie avec *InstallableFeatureName. La fonctionnalité fournit 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 un autre texte est plus approprié.

Par conséquent, pour notre exemple, la feuille de propriétés comprend une fonctionnalité InputBin, intitulée Bin d’entrée, qui comprend deux options, intitulées Chargeur automatique et Flux d’enveloppes. La feuille de propriétés comprend également une fonctionnalité supplémentaire, intitulée Chargeur d’enveloppes facultatif, avec deux options, étiquetées Installé et Non installé. L’utilisateur peut uniquement sélectionner Le chargeur d’enveloppes sous Compartiment d’entrée s’il sélectionne d’abord Installé sous Chargeur d’enveloppe facultatif.

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 des entrées GPD qui spécifient des contraintes d’option.

Vous ne pouvez pas utiliser le *Installable ? avec des fonctionnalités facultatives qui nécessitent une entrée *DisabledFeatures. Pour ces fonctionnalités, vous devez spécifier explicitement la fonctionnalité facultative avec les options « Installé » et « Non installé ». Par exemple, supposons qu’une imprimante dispose d’une unité de duplexing facultative. La fonctionnalité Duplex (voir Fonctionnalités standard) doit être désactivée si l’unité de duplexing n’est pas installée. Vous devez définir une fonctionnalité « Unité de duplexage facultative », avec les options « Installé » et « Non installé ». Dans l’entrée * Option « Non installé », vous devez inclure 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é.