structure ATTRIBUTE_INFO_4 (winddiui.h)

La structure ATTRIBUTE_INFO_4 est utilisée comme paramètre pour la fonction DrvQueryJobAttributes d’une DLL d’interface d’imprimante. Toutes les valeurs membres sont fournies par fonction. Cette structure est similaire à ATTRIBUTE_INFO_3, mais elle inclut des membres supplémentaires pour contrôler la N-up, l’impression duplex et l’impression de livrets, et la mise à l’échelle.

Syntaxe

typedef struct _ATTRIBUTE_INFO_4 {
  DWORD dwJobNumberOfPagesPerSide;
  DWORD dwDrvNumberOfPagesPerSide;
  DWORD dwNupBorderFlags;
  DWORD dwJobPageOrderFlags;
  DWORD dwDrvPageOrderFlags;
  DWORD dwJobNumberOfCopies;
  DWORD dwDrvNumberOfCopies;
  DWORD dwColorOptimization;
  short dmPrintQuality;
  short dmYResolution;
  DWORD dwDuplexFlags;
  DWORD dwNupDirection;
  DWORD dwBookletFlags;
  DWORD dwScalingPercentX;
  DWORD dwScalingPercentY;
} ATTRIBUTE_INFO_4, *PATTRIBUTE_INFO_4;

Membres

dwJobNumberOfPagesPerSide

Nombre de pages de document à placer sur un côté d’une page physique, comme demandé par l’utilisateur. Les valeurs autorisées sont 1, 2, 4, 6, 9 ou 16.

dwDrvNumberOfPagesPerSide

Nombre de pages de document que l’imprimante et le pilote peuvent placer sur un côté d’une page physique. Cette valeur doit être 1 ou la valeur spécifiée pour dwJobNumberOfPagesPerSide.

dwNupBorderFlags

Une des valeurs d’indicateur de bits suivantes :

Indicateur Définition
BORDER_PRINT Le processeur d’impression doit dessiner une bordure autour de la page.
NO_BORDER_PRINT Le processeur d’impression ne doit pas dessiner de bordure autour de la page.

dwJobPageOrderFlags

Une des valeurs d’indicateur de bits suivantes :

Indicateur Définition
BOOKLET_PRINT Les pages doivent être imprimées sous forme de livret, avec deux pages de document imprimées sur un côté d’une page physique. En mode paysage, les deux pages de document sont imprimées côte à côte sur le papier. En mode portrait, les deux pages de document sont imprimées en haut et en bas.
NORMAL_PRINT Les pages doivent être imprimées dans l’ordre normal : page 1, page 2, etc.
REVERSE_PRINT Les pages doivent être imprimées dans l’ordre inverse : dernière page, avant-dernière page, etc.

dwDrvPageOrderFlags

Indicateurs de bits indiquant les options de classement des pages prises en charge par l’imprimante et le pilote. Utilise les mêmes indicateurs que dwJobPageOrderFlags.

dwJobNumberOfCopies

Nombre de copies du travail d’impression, comme demandé par l’utilisateur.

dwDrvNumberOfCopies

Nombre maximal de copies que l’imprimante et le pilote peuvent gérer à la fois, en tenant compte des attributs de travail tels que le regroupement et l’agrafage.

dwColorOptimization

Une des valeurs d’indicateur de bits suivantes :

Indicateur Définition
COLOR_OPTIMIZATION Le processeur d’impression doit utiliser l’optimisation des couleurs monochromes.
NO_COLOR_OPTIMIZATION Le processeur d’impression ne doit pas utiliser l’optimisation des couleurs monochromes.

dmPrintQuality

Valeur à utiliser au lieu du membre dmPrintQuality de la structure DEVMODEW du travail d’impression, si l’indicateur COLOR_OPTIMIZATION est défini dans dwColorOptimization.

dmYResolution

Valeur à utiliser au lieu du membre dmYResolution de la structure DEVMODEW du travail d’impression, si l’indicateur COLOR_OPTIMIZATION est défini dans dwColorOptimization.

dwDuplexFlags

L’une des valeurs d’indicateur de bits suivantes utilisées dans l’impression recto verso :

Indicateur Définition
DONT_SEND_EXTRA_PAGES_FOR_DUPLEX Le processeur d’impression ne doit pas envoyer de pages vides supplémentaires lors de l’impression recto verso. Par exemple, si vous envoyez un travail de trois pages pour l’impression recto verso, certaines imprimantes s’attendent à recevoir quatre pages. Si vous imprimez ce travail sur Microsoft Windows XP ou Windows Server 2003, le processeur d’impression envoie quatre pages à l’imprimante par défaut (la quatrième page est une page vide). Si vous imprimez ce travail sur Windows Vista avec ce jeu d’indicateurs, le processeur d’impression envoie uniquement les trois pages du travail d’impression et n’envoie pas la page vide supplémentaire.
REVERSE_PAGES_FOR_REVERSE_DUPLEX Le processeur d’impression doit inverser l’ordre des paires de pages lors de l’impression en mode duplex inversé. Par exemple, lorsque cet indicateur est défini, le processeur d’impression doit imprimer les pages de l’ordre 7, 8, 5, 6, 3, 4, 1, 2 au lieu de 8, 7, 6, 5, 4, 3, 2, 1.

Définissez sur 0 si votre pilote ne nécessite aucune de ces options.

dwNupDirection

L’une des valeurs d’indicateur de bits suivantes utilisées dans l’impression N-up :

Indicateur Définition
RIGHT_THEN_DOWN Le processeur d’impression doit fournir des images de page dans l’ordre de gauche à droite, puis vers le bas de la page imprimée finale. Définissez également cette valeur si l’impression N-up n’est pas nécessaire.
DOWN_THEN_RIGHT Le processeur d’impression doit fournir des images de page dans l’ordre de haut en bas, puis de gauche à droite sur la page imprimée finale.
LEFT_THEN_DOWN Le processeur d’impression doit fournir des images de page dans l’ordre de droite à gauche, puis vers le bas de la page imprimée finale.
DOWN_THEN_LEFT Le processeur d’impression doit fournir des images de page en séquence de haut en bas, puis de droite à gauche sur la page imprimée finale.

Cet indicateur est pris en compte uniquement si dwJobNumberOfPagesPerSide et/ou dwDrvNumberOfPagesPerSide indiquent que l’impression N-up est active. Pour plus d’informations, consultez les descriptions ci-dessus pour dwJobNumberOfPagesPerSide et dwDrvNumberOfPagesPerSide.

dwBookletFlags

Si dwJobPageOrderFlags a la valeur BOOKLET_PRINT, l’une des valeurs suivantes.

Indicateur Définition
BOOKLET_EDGE_LEFT Le processeur d’impression doit imprimer les pages dans une mise en page de livret de gauche à droite, où le bord lié du dernier livret plié se trouve sur le bord gauche de la page 1.
BOOKLET_EDGE_RIGHT Le processeur d’impression doit imprimer les pages dans une disposition de livret de droite à gauche, où le bord lié du dernier livret plié se trouve sur le bord droit de la page 1.

Si dwJobPageOrderFlags n’est pas défini sur BOOKLET_PRINT, dwBookletFlags a la valeur 0.

Cet indicateur n’est pris en compte que si le membre dwJobPageOrderFlags a la valeur BOOKLET_PRINT.

dwScalingPercentX

Pourcentage de mise à l’échelle dans le sens horizontal (x) par rapport au format de papier normal. Doit être comprise entre 1 et 1000. Définissez sur 100 si la mise à l’échelle n’est pas effectuée.

Pour garantir des résultats d’impression prévisibles, dwScalingPercentX et dwScalingPercentY doivent avoir la même valeur.

dwScalingPercentY

Pourcentage de mise à l’échelle dans le sens vertical (y) par rapport au format normal du papier. Doit être comprise entre 1 et 1000. Définissez sur 100 si la mise à l’échelle n’est pas effectuée.

Pour garantir des résultats d’impression prévisibles, dwScalingPercentX et dwScalingPercentY doivent avoir la même valeur.

Remarques

Si le membre dmPrintQuality de la structure DEVMODEW d’un travail d’impression est une valeur négative, telle que DMRES_HIGH, et si l’optimisation des couleurs monochromes est activée, le basculement entre la couleur et le monochrome peut entraîner l’utilisation de différentes résolutions. Cela est dû au fait que DMRES_HIGH peut être affecté à différentes valeurs DPI pour le rendu couleur et monochrome. (Pour les appareils pris en charge par Unidrv, cette affectation se produit dans le fichier GPD de l’imprimante.) Pour garantir une résolution cohérente tout au long de la tâche d’impression, le pilote peut spécifier des valeurs dmPrintQuality et dmYResolution positives (représentant une résolution DPI spécifique) pour remplacer les valeurs DEVMODEW équivalentes.

Le processeur d’impression EMF utilise l’indicateur spécifié pour dwColorOptimization pour déterminer s’il faut demander à GDI d’effectuer une optimisation des couleurs monochromes. Si l’optimisation des couleurs monochromes est activée, la tâche d’impression peut basculer entre le rendu monochrome et le rendu des couleurs le cas échéant.

Si vous créez un plug-in de rendu Unidrv pour générer des filigranes de couleur, notez que lorsque le membre dwColorOptimization est défini sur COLOR_OPTIMIZATION, les filigranes de couleur sont imprimés en noir et blanc lorsqu’ils sont imprimés sur des documents en noir et blanc. Pour vous assurer que les filigranes de couleur s’impriment correctement avec des documents en couleur et en noir et blanc, désactivez l’optimisation des couleurs. L’optimisation des couleurs peut également être contrôlée par l’attribut de couleur Unidrv *ChangeColorModeOnDoc ? (voir Attributs de couleur) et par la fonction GdiEndPageEMF .

Pour obtenir la liste des valeurs par défaut pour les membres ATTRIBUTE_INFO_4, consultez GetJobAttributesEx.

Configuration requise

Condition requise Valeur
En-tête winddiui.h (inclure Winddiui.h, Winsplp.h)

Voir aussi

ATTRIBUTE_INFO_2

ATTRIBUTE_INFO_3

DrvQueryJobAttributes

GdiEndPageEMF

GetJobAttributesEx