Attributs de capacité de l’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.
Les attributs de capacité de l’imprimante sont des attributs d’impression généraux qui spécifient des caractéristiques de l’imprimante telles que les marges de page, la rotation et les capacités d’impression de texte qui affectent tous les formats et orientations de papier.
Nom de l’attribut | Paramètre d’attribut | Commentaires |
---|---|---|
MemoryUsage | LISTE de constantes indiquant les types de données qui sont stockés dans la mémoire de l’imprimante. Peut inclure un ou plusieurs des éléments suivants : FONT, RASTER, VECTOR. Si un type de données est listé mais non pris en charge par l’imprimante, il est ignoré. | facultatif. Si non spécifié, la valeur par défaut est LISTE(FONT, RASTER, VECTOR). Pour plus d’informations, veuillez consulter la section Configuration de la mémoire de l’imprimante. |
OEMCustomData | Chaîne de texte entre guillemets à fournir à un plug-in de rendu lorsqu’il appelle IPrintOemDriverUni::DrvGetGPDData. | Obligatoire si un plug-in de rendu appelle IPrintOemDriverUni::DrvGetGPDData. L’interprétation du contenu de la chaîne de texte est déterminée par le plug-in de rendu. Cet attribut est un attribut global relogeable ; il peut être placé au niveau racine (voir Attributs uniquement au niveau racine) pour indiquer qu’il n’a aucune dépendance vis-à-vis de la configuration de l’imprimante, ou il peut apparaître avec des constructions Option ou Case s’il existe une dépendance. |
OutputOrderReversed? | TRUE ou FALSE, indiquant si les documents multipages sont triés de la dernière page à la première. | facultatif. Si non spécifié, la valeur par défaut est FALSE. Le symbole EXTERN_GLOBAL ne doit pas être utilisé avec OutputOrderReversed?. |
ReselectFont | LISTE de constantes indiquant les opérations après lesquelles Unidrv doit resélectionner la police en cours. Peut inclure l’une des options suivantes : AFTER_GRXDATA - Après toute commande d’émission de données CmdSendXxxxData données raster. AFTER_XMOVE - Après toute commande de déplacement en x commandes de curseur. AFTER_FF - Après la commande CmdFF. | facultatif. Si non spécifié, Unidrv ne resélectionne pas les polices. |
ReverseBandOrderForEvenPages? | TRUE ou FALSE, indiquant si le banding inversé est activé. Cet attribut est utilisé pour prendre en charge les imprimantes avec capacité d’autoduplex, c’est-à-dire les imprimantes capables d’imprimer des deux côtés d’une feuille de papier. La section suivante contient plus d’informations. | La valeur par défaut de cet attribut est FALSE. Définir cet attribut sur TRUE active l’ordre de banding inversé. Cet attribut est un attribut global relogeable. Il peut être placé au niveau racine (voir Attributs uniquement au niveau racine) pour indiquer qu’il n’a aucune dépendance vis-à-vis de la configuration de l’imprimante, ou il peut apparaître avec des constructions Option ou Case s’il existe une dépendance. |
RotateCoordinate? | TRUE ou FALSE, indiquant si l’imprimante prend en charge les commandes permettant de faire pivoter le système de coordonnées pour correspondre à l’orientation de la page. | facultatif. Si non spécifié, la valeur par défaut est FALSE. Si TRUE, les entrées Option pour la fonctionnalité Orientation doivent spécifier des commandes d’imprimante. Ne peut pas être placé dans une entrée Case. |
RotateFont? | TRUE ou FALSE, indiquant si l’imprimante fait automatiquement pivoter les polices pour correspondre à l’orientation de la page. | facultatif. Si non spécifié, la valeur par défaut est FALSE. Si TRUE, alors RotateCoordinate? doit également être TRUE. Ne peut pas être placé dans une entrée Case. |
RotateRaster? | TRUE ou FALSE, indiquant si l’imprimante fait automatiquement pivoter les données raster pour correspondre à l’orientation de la page. | facultatif. Si non spécifié, la valeur par défaut est FALSE. Si TRUE, alors RotateCoordinate? doit également être TRUE. Ne peut pas être placé dans une entrée Case. |
TextCaps | LISTE de constantes indiquant les capacités de texte de l’imprimante. Peut inclure une ou plusieurs des indicateurs TC_xxx décrits dans GetDeviceCaps. | facultatif. Si non spécifié, Unidrv suppose qu’aucune capacité de texte n’est prise en charge. |
Informations supplémentaires sur ReverseBandOrderForEvenPages?
Un effet secondaire de la capacité d’autoduplex est que le bord inférieur d’une page imprimée est réintroduit dans l’imprimante pour devenir le bord supérieur de la page suivante. Pour maintenir l’orientation de la deuxième page par rapport à la première, l’image raster de la deuxième page doit être envoyée à l’imprimante dans un ordre inverse. En d’autres termes, si l’imprimante a imprimé la face avant en envoyant la première ligne de balayage en haut, elle doit imprimer la face arrière en envoyant d’abord la ligne de balayage du bas.
Lorsque ReverseBandOrderForEvenPages? est TRUE et que le mode duplex est activé, Unidrv énumère chaque bande dans l’ordre inverse pour les pages paires (les verso des pages impaires). Le plug-in de rendu OEM n’a besoin de mettre en cache qu’une seule bande de données avant de l’envoyer à l’imprimante. L’ordre des lignes de balayage au sein de chaque bande n’est pas inversé, donc le plug-in doit encore gérer cette tâche et doit également inverser l’ordre des bits dans chaque ligne de balayage. Bien que cela représente un travail supplémentaire pour le plug-in, l’avantage est que le plug-in n’a pas besoin de mettre en cache les données raster et peut commencer à envoyer des données à l’imprimante immédiatement.
L’attribut ReverseBandOrderForEvenPages? est évalué uniquement lorsque le mode duplex est défini sur « Retourner sur le bord long ». Cet attribut est ignoré lorsque le mode duplex est défini sur « Retourner sur le bord court ».
La valeur de l’attribut ReverseBandOrderForEvenPages? et la rotation simulée par le pilote affectent la façon dont les bandes sont énumérées, comme indiqué dans le tableau suivant. L’ordre d’énumération des bandes spécifié dans la colonne intitulée TRUE s’applique lorsque ReverseBandOrderForEvenPages? est TRUE, que le duplex est sélectionné, et que la page à imprimer est le verso. Sinon, la colonne intitulée FALSE s’applique.
Rotation simulée par le pilote | TRUE et page paire | FALSE ou page impaire |
---|---|---|
CCW_ROTATE90 | SW_LTOR | SW_RTOL |
CCW_ROTATE270 | SW_RTOL | SW_LTOR |
Pas de rotation | SW_UP | SW_DOWN |
Légende : SW_LTOR = De gauche à droite, SW_RTOL = De droite à gauche, SW_UP = Du bas vers le haut, SW_DOWN = Du haut vers le bas.
Un plug-in de rendu OEM peut prendre en charge l’autoduplex sans utiliser l’attribut ReverseBandOrderForEvenPages?. Le plug-in peut le faire en mettant en cache toutes les données de la page entière et en les envoyant à l’imprimante, en commençant par la ligne de balayage du bas. Cette ligne de balayage, ainsi que toutes les autres sur cette page, doivent être envoyées dans l’ordre inverse.
Le plug-in de rendu OEM est responsable de l’inversion de l’ordre des bits avec chaque ligne de balayage et de l’ordre des lignes de balayage avec chaque bande lorsqu’il envoie les données à l’imprimante. Pour déterminer quand cela doit être fait, la valeur de la variable standard PageNumber peut être obtenue en appelant IPrintOemDriverUni::DrvGetStandardVariable, en utilisant l’index SVI_PAGENUMBER. Si le numéro de la page est impair, aucune inversion n’est nécessaire. Si le numéro est pair et que le duplex est sélectionné, l’inversion est nécessaire.