Identification de la capacité couleur d’une imprimante
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.
Pour distinguer les périphériques en couleur des périphériques non colorés (monochromes ou en niveaux de gris), les versions des systèmes d’exploitation basés sur NT à partir de Windows 2000 appellent la fonction DrvDeviceCapabilities, en passant la constante DC_COLORDEVICE dans l’appel. Cette fonction renvoie 1 si le périphérique prend en charge la couleur, et 0 si le périphérique produit une sortie monochrome ou en niveaux de gris. Il est recommandé que tous les pilotes d’imprimante prennent en charge les appels à DrvDeviceCapabilities pour la constante DC_COLORDEVICE.
Il est très important que les pilotes implémentent la fonction DrvDeviceCapabilities. Sinon, il devient plus difficile pour le système d’exploitation de distinguer les périphériques en couleur des périphériques non colorés, pour les raisons suivantes :
Un appel à la fonction GetDeviceCaps (décrite dans la documentation du SDK Windows), dans lequel la constante NUMCOLORS est passée, se traduit généralement par une valeur de retour inférieure ou égale à 2 pour la plupart des périphériques non colorés, et supérieure à 2 pour les périphériques en couleur. Le système d’exploitation est incapable de faire la distinction entre les périphériques monochromes et ceux en niveaux de gris.
La valeur du membre dmColor de la structure DEVMODEW n’est pas un indicateur fiable pour déterminer si le périphérique est en couleur ou non. Certains pilotes d’imprimante définissent ce membre sur DMCOLOR_COLOR même pour les périphériques qui ne sont pas capables de produire des couleurs.