winddiui.h) (ATTRIBUTE_INFO_4 结构
ATTRIBUTE_INFO_4 结构用作打印机接口 DLL 的 DrvQueryJobAttributes 函数的参数。 所有成员值都是函数提供的。 此结构类似于 ATTRIBUTE_INFO_3,但它包括用于控制 N 向上、双面和小册子打印以及缩放的其他成员。
语法
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;
成员
dwJobNumberOfPagesPerSide
要根据用户请求放置在物理页面一侧的文档页数。 允许的值为 1、2、4、6、9 或 16。
dwDrvNumberOfPagesPerSide
打印机和驱动程序可以放置在物理页面一侧的文档页数。 此值必须为 1 或为 dwJobNumberOfPagesPerSide 指定的值。
dwNupBorderFlags
以下位标志值之一:
标志 | 定义 |
---|---|
BORDER_PRINT | 打印处理器应在页面周围绘制边框。 |
NO_BORDER_PRINT | 打印处理器不应在页面周围绘制边框。 |
dwJobPageOrderFlags
以下位标志值之一:
标志 | 定义 |
---|---|
BOOKLET_PRINT | 页面应以小册子形式打印,在物理页面的一侧打印两个文档页。 在横向模式下,两个文档页在纸张上并排打印。 在纵向模式下,两个文档页从上到下打印。 |
NORMAL_PRINT | 页面应按正常顺序打印:第 1 页、第 2 页等。 |
REVERSE_PRINT | 页面应按相反顺序打印:最后一页、下一页等。 |
dwDrvPageOrderFlags
指示打印机和驱动程序支持哪些页面排序选项的位标志。 使用与 dwJobPageOrderFlags 相同的标志。
dwJobNumberOfCopies
根据用户的请求打印作业的副本数。
dwDrvNumberOfCopies
考虑到整理和装订等作业属性,打印机和驱动程序一次可以处理的最大副本数。
dwColorOptimization
以下位标志值之一:
标志 | 定义 |
---|---|
COLOR_OPTIMIZATION | 打印处理器应使用单色颜色优化。 |
NO_COLOR_OPTIMIZATION | 打印处理器不应使用单色颜色优化。 |
dmPrintQuality
如果要使用的值,而不是打印作业的 DEVMODEW 结构的 dmPrintQuality 成员,前提是在 dwColorOptimization 中设置了COLOR_OPTIMIZATION标志。
dmYResolution
如果要使用的值,而不是打印作业的 DEVMODEW 结构的 dmYResolution 成员,前提是在 dwColorOptimization 中设置了COLOR_OPTIMIZATION标志。
dwDuplexFlags
双面打印中使用的以下位标志值之一:
标志 | 定义 |
---|---|
DONT_SEND_EXTRA_PAGES_FOR_DUPLEX | 双面打印时,打印处理器不应发送额外的空白页。 例如,如果发送三页作业进行双面打印,某些打印机预期会收到四页。 如果在 Microsoft Windows XP 或 Windows Server 2003 上打印此作业,打印处理器默认会将四页发送到打印机, (第四页是空白页) 。 如果在设置了此标志的 Windows Vista 上打印此作业,则打印处理器仅发送打印作业的三页,不发送额外的空白页。 |
REVERSE_PAGES_FOR_REVERSE_DUPLEX | 在反向双工模式下打印时,打印处理器应反转页面对的顺序。 例如,设置此标志时,打印处理器应按顺序 7、8、5、6、3、4、1、2 而不是 8、7、6、5、4、3、2、1 打印页面。 |
如果驱动程序不需要上述任何选项,则设置为 0。
dwNupDirection
在 N-up 打印中使用的以下位标志值之一:
标志 | 定义 |
---|---|
RIGHT_THEN_DOWN | 打印处理器应按顺序从左到右提供页面图像,然后向下提供最终打印页面。 如果不需要 N 向上打印,也设置为此值。 |
DOWN_THEN_RIGHT | 打印处理器应按顺序从上到下提供页面图像,然后在最终打印页上按从左到右的顺序提供页面图像。 |
LEFT_THEN_DOWN | 打印处理器应按顺序从右到左提供页面图像,然后向下提供最终打印页面。 |
DOWN_THEN_LEFT | 打印处理器应按顺序从上到下提供页面图像,然后在最终打印页上按从右到左的顺序提供页面图像。 |
仅当 dwJobNumberOfPagesPerSide 和/或 dwDrvNumberOfPagesPerSide 指示 N-up 打印处于活动状态时,才会考虑此标志。 有关详细信息,请参阅上述 dwJobNumberOfPagesPerSide 和 dwDrvNumberOfPagesPerSide 的说明。
dwBookletFlags
如果 dwJobPageOrderFlags 设置为 BOOKLET_PRINT,则为以下值之一。
标志 | 定义 |
---|---|
BOOKLET_EDGE_LEFT | 打印处理器应采用从左到右的小册子布局打印页面,其中最终折叠的小册子的边框位于第一页的左边缘。 |
BOOKLET_EDGE_RIGHT | 打印处理器应采用从右到左的小册子布局打印页面,其中最终折叠的小册子的边框位于第一页的右边缘。 |
如果 dwJobPageOrderFlags 未设置为 BOOKLET_PRINT, 则 dwBookletFlags 设置为 0。
仅当 dwJobPageOrderFlags 成员设置为 BOOKLET_PRINT 时才考虑此标志。
dwScalingPercentX
相对于正常纸张大小的水平 (x) 方向的缩放百分比。 必须在 1 到 1000 的范围内。 如果未完成缩放,则设置为 100。
为了确保打印结果可预测, dwScalingPercentX 和 dwScalingPercentY 必须具有相同的值。
dwScalingPercentY
垂直 (y) 方向相对于正常纸张大小的缩放百分比。 必须在 1 到 1000 的范围内。 如果未完成缩放,则设置为 100。
为了确保打印结果可预测, dwScalingPercentX 和 dwScalingPercentY 必须具有相同的值。
注解
如果打印作业的 DEVMODEW 结构的 dmPrintQuality 成员为负值(例如DMRES_HIGH),并且启用了单色颜色优化,则在颜色和单色之间切换可能会导致使用不同的分辨率。 这是因为DMRES_HIGH可能会分配给颜色和单色呈现的不同 DPI 值。 (对于 Unidrv 支持的设备,此分配发生在打印机的 GPD 文件中。) 为了确保整个打印作业的分辨率一致,驱动程序可以指定正 dmPrintQuality 和 dmYResolution 值, (表示特定 DPI 分辨率) 替代等效 的 DEVMODEW 值。
EMF 打印处理器使用为 dwColorOptimization 指定的标志确定是否请求 GDI 执行单色颜色优化。 如果启用了单色颜色优化,则可以根据需要在单色和颜色呈现之间切换打印作业。
如果要创建 Unidrv 呈现插件来生成颜色水印,请注意,当 dwColorOptimization 成员设置为COLOR_OPTIMIZATION时,当在黑白文档中打印颜色水印时,颜色水印以黑白打印。 若要确保颜色水印正确打印彩色和黑白文档,请禁用颜色优化。 颜色优化还可以由 Unidrv *ChangeColorModeOnDoc? 颜色属性控制, (请参阅 颜色属性) ,并由 GdiEndPageEMF 函数控制。
有关ATTRIBUTE_INFO_4成员的默认值列表,请参阅 GetJobAttributesEx。
要求
要求 | 值 |
---|---|
Header | winddiui.h (包括 Winddiui.h、Winsplp.h) |