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) |