ATTRIBUTE_INFO_4 结构 (winsplp.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

如果在 dwColorOptimization 中设置了COLOR_OPTIMIZATION标志,则要使用的值而不是打印作业的 DEVMODEW 结构的 dmYResolution 成员。

dwDuplexFlags

双面打印中使用的以下位标志值之一:

标志 定义
DONT_SEND_EXTRA_PAGES_FOR_DUPLEX 双面打印时,打印处理器不应发送额外的空白页。 例如,如果发送一个三页的双面打印作业,某些打印机预期会收到四页。 如果打印此作业时设置了此标志,则打印处理器仅发送打印作业的三页,并且不会发送额外的空白页。
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 打印处于活动状态时,才会考虑此标志。 有关详细信息,请参阅上述 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 文件中。) 为了确保整个打印作业的分辨率一致,驱动程序可以指定正 dmPrintQualitydmYResolution 值, (表示特定 DPI 分辨率) 重写等效 的 DEVMODEW 值。

EMF 打印处理器使用为 dwColorOptimization 指定的标志确定是否请求 GDI 执行单色颜色优化。 如果启用了单色颜色优化,则可以根据需要在单色和颜色呈现之间切换打印作业。

如果要创建 Unidrv 呈现插件来生成颜色水印,请注意,当 dwColorOptimization 成员设置为 COLOR_OPTIMIZATION时,在黑白文档上打印时,颜色水印以黑白方式打印。 若要确保颜色水印正确打印彩色和黑白文档,请禁用颜色优化。 颜色优化还可以由 Unidrv *ChangeColorModeOnDoc? 颜色属性控制 (请参阅 颜色属性) ,以及由 GdiEndPageEMF 函数控制。

有关ATTRIBUTE_INFO_4成员的默认值列表,请参阅 GetJobAttributesEx

此结构在 Windows Vista 中可用。

要求

要求
Header winsplp.h (包括 Winddiui.h、Winsplp.h)

另请参阅

ATTRIBUTE_INFO_2

ATTRIBUTE_INFO_3

DrvQueryJobAttributes

GdiEndPageEMF

GetJobAttributesEx