打印机功能属性

重要

新式打印平台是 Windows 与打印机通信的首选方式。 建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) 来自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。

有关详细信息,请参阅新式打印平台打印支持应用设计指南

打印机功能属性是常规打印属性,用于指定影响所有纸张大小和方向的页边距、旋转和文本打印功能等打印机特征。

属性名 属性参数 注释
MemoryUsage 常量列表,指示存储在打印机内存中的数据的类型。 可以是以下项中的一个或多个:FONT RASTER VECTOR。 如果列出了数据类型,但打印机不支持,则忽略该数据类型。 可选。 如果未指定,则默认值为 LIST(FONT, RASTER, VECTOR)。 有关详细信息,请参阅描述打印机内存配置
OEMCustomData 调用 IPrintOemDriverUni::DrvGetGPDData 时要向呈现插件提供的带引号文本字符串。 如果呈现插件调用 IPrintOemDriverUni::DrvGetGPDData,则为必需。 文本字符串内容的解释由呈现插件确定。 此属性是可重定位的全局属性;可将其放置在根级别(请参阅仅限根级别的属性),以表示它不依赖于打印机配置,或者如果存在某种依赖项,则它可能会使用 Option 或 Case 构造显示。
OutputOrderReversed? TRUEFALSE,指示是否将多页文档按最后一页到第一页的顺序排序。 可选。 如果未指定,默认值为 FALSE。 不能将 EXTERN_GLOBAL 符号与 OutputOrderReversed? 结合使用。
ReselectFont 指示在其之后 Unidrv 必须重新选择当前字体的操作的常量列表。 可以以下项之一:AFTER_GRXDATA - 在任何 CmdSendXxxxData 光栅数据发射命令之后。 AFTER_XMOVE - 在任何 x 移动光标命令之后。 AFTER_FF - 在 CmdFF 命令之后。 可选。 如果未指定,Unidrv 不会重新选择字体。
ReverseBandOrderForEvenPages? TRUEFALSE,指示是否启用反向条带。 此属性用于支持具有 autoduplex 功能的打印机;即能够在纸张两面打印的打印机。 此表后面的部分包含详细信息。 此属性的默认值为 FALSE。 将此属性设置为 TRUE 时,将启用反向条带顺序。 此属性是可重定位的全局属性。 可将其放置在根级别(请参阅仅限根级别的属性),以表示它不依赖于打印机配置,或者如果存在某种依赖项,则它可能会使用 Option 或 Case 构造显示。
RotateCoordinate? TRUEFALSE,指示打印机是否支持命令旋转坐标系,以便与页面方向匹配。 可选。 如果未指定,默认值为 FALSE。 如果为 TRUE,则方向功能的 Option 条目必须指定打印机命令。 不能放在 Case 条目中。
RotateFont? TRUEFALSE,指示打印机是否自动旋转字体,以便与页面方向匹配。 可选。 如果未指定,默认值为 FALSE。 如果为 TRUE,则 RotateCoordinate? 也必须为 TRUE。 不能放在 Case 条目中。
RotateRaster? TRUEFALSE,指示打印机是否自动旋转光栅数据,以便与页面方向匹配。 可选。 如果未指定,默认值为 FALSE。 如果为 TRUE,则 RotateCoordinate? 也必须为 TRUE。 不能放在 Case 条目中。
TextCaps 指示打印机文本功能的常量列表。 可以包含 GetDeviceCaps 中介绍的一个或多个 TC_xxx 标志。 可选。 如果未指定,Unidrv 假定任何文本功能均不受支持。

有关 ReverseBandOrderForEvenPages? 的其他信息

Autoduplex 功能的副作用是,已打印页面的下边缘将送回打印机,成为下一页的上边缘。 要保持第二页相对于第一页的方向,必须按相反顺序将第二页的光栅图像发送到打印机。 换言之,如果打印机先发送顶部扫描行来打印正面,则必须先打印背面底部扫描行。

ReverseBandOrderForEvenPages?TRUE 且双工处于打开状态时,Unidrv 将按偶数页的反向顺序枚举每个条带(奇数页的背面)。 OEM 呈现插件需要先缓存一个数据条带,然后再将其发送到打印机。 系统不会反转每个条带内的扫描行顺序,因此插件仍必须处理该任务,并且还必须反转每个扫描行中的位顺序。 虽然这是插件的额外工作,但优势是插件不需要缓存任何光栅数据,并且可以立即开始将数据发送到打印机。

仅当将双工设置为“在长边缘上翻转”时,才会计算 ReverseBandOrderForEvenPages? 属性。 当将双工设置为“在短边缘上翻转”时,系统将忽略此属性。

如下表所示,ReverseBandOrderForEvenPages? 属性值和驱动程序模拟旋转都会影响条带枚举方式。 当 ReverseBandOrderForEvenPages?TRUE 时,选择了双工,并且要打印的页面是第二面(或背面),则适用在标题为 TRUE 的列中指定的条带枚举顺序。 否则,将适用标题为 FALSE 的列。

驱动程序模拟旋转 TRUE 和偶数页 FALSE 或奇数页
CCW_ROTATE90 SW_LTOR SW_RTOL
CCW_ROTATE270 SW_RTOL SW_LTOR
无旋转 SW_UP SW_DOWN

图例:SW_LTOR = 从左到右,SW_RTOL = 从右到左,SW_UP = 从下到上,SW_DOWN = 从上到下。

OEM 呈现插件可以在不使用 ReverseBandOrderForEvenPages? 属性的情况下支持自动双工。 插件可以通过缓存整个页面的所有数据并将其发送到打印机(从底部扫描行开始)来完成此操作。 该扫描行以及该页面上的所有其他扫描行均必须按相反顺序发送。

OEM 呈现插件负责反转每个扫描行的位顺序,以及将数据发送到打印机时每个条带的扫描行顺序。 要确定何时必须执行此操作,可以使用索引 SVI_PAGENUMBER 调用 IPrintOemDriverUni::DrvGetStandardVariable,以便获取 PageNumber 标准变量的值。 如果页码为奇数,则无需反转。 如果数字为偶数且选择了双工,则需要反转。