ATTRIBUTE_INFO_4结构(winddiui.h)
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
要在 dwColorOptimization中设置COLOR_OPTIMIZATION标志,而不是打印作业 DEVMODEW 结构的 dmPrintQuality 成员的值。
dmYResolution
如果要使用的值,而不是打印作业 DEVMODEW 结构的 dmYResolution 成员,如果在 dwColorOptimization 中设置COLOR_OPTIMIZATION标志。
dwDuplexFlags
双面打印中使用的以下位标志值之一:
旗 | 定义 |
---|---|
DONT_SEND_EXTRA_PAGES_FOR_DUPLEX | 双面打印时,打印处理器不应发送额外的空白页。 例如,如果发送双面打印的三页作业,某些打印机预期会收到四页。 如果在 windows XP 或 Windows Server 2003 Microsoft打印此作业,则打印处理器默认向打印机发送四页(第四页是空白页)。 如果在设置了此标志的 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 向上打印中使用的以下位标志值之一:
旗 | 定义 |
---|---|
RIGHT_THEN_DOWN | 打印处理器应按顺序从左到右的顺序提供页面图像,然后向下提供最终打印页。 如果不需要 N 个打印,则还设置为此值。 |
DOWN_THEN_RIGHT | 打印处理器应按顺序从上到下提供页面图像,然后在最终打印页上从左到右提供页面图像。 |
LEFT_THEN_DOWN | 打印处理器应按顺序从右到左的顺序提供页面图像,然后向下提供最终打印页。 |
DOWN_THEN_LEFT | 打印处理器应按顺序从上到下提供页面图像,然后在最终打印页上从右到左提供页面图像。 |
仅当 dwJobNumberOfPagesPerSide 和/或 dwDrvNumberOfPagesPerSide 指示 N 升打印处于活动状态时,才会考虑此标志。 有关详细信息,请参阅上述 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。
要求
要求 | 价值 |
---|---|
标头 | winddiui.h (包括 Winddiui.h、Winsplp.h) |