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 升打印处于活动状态时,才会考虑此标志。 有关详细信息,请参阅上述 dwJobNumberOfPagesPerSidedwDrvNumberOfPagesPerSide的说明。

dwBookletFlags

如果 dwJobPageOrderFlags 设置为BOOKLET_PRINT,则以下值之一。

定义
BOOKLET_EDGE_LEFT 打印处理器应在从左到右的小册子布局中打印页面,其中最终折叠小册子的边界边缘位于第一页的左边缘。
BOOKLET_EDGE_RIGHT 打印处理器应在从右到左的小册子布局中打印页面,其中最终折叠小册子的边界边缘位于第一页的右边缘。

如果 dwJobPageOrderFlags 未设置为 BOOKLET_PRINT,dwBookletFlags 设置为 0。

仅当 dwJobPageOrderFlags 成员设置为BOOKLET_PRINT时,才会考虑此标志。

dwScalingPercentX

相对于普通纸张大小的水平 (x) 方向的缩放百分比。 必须介于 1 到 1000 的范围内。 如果未完成缩放,则设置为 100。

为确保可预测打印结果,dwScalingPercentXdwScalingPercentY 必须具有相同的值。

dwScalingPercentY

相对于普通纸张大小的垂直(y)方向的缩放百分比。 必须介于 1 到 1000 的范围内。 如果未完成缩放,则设置为 100。

为确保可预测打印结果,dwScalingPercentXdwScalingPercentY 必须具有相同的值。

言论

如果打印作业 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)

另请参阅

ATTRIBUTE_INFO_2

ATTRIBUTE_INFO_3

DrvQueryJobAttributes

GdiEndPageEMF

GetJobAttributesEx