打印功能体系结构

重要

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

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

PrintCapabilities 对象由打印驱动程序 IPrintTicketProvider 接口实现的 IPrintTicketProvider::GetPrintCapabilities 方法返回。 除了 DrvDeviceCapabilities 函数外,XPSDrv 打印驱动程序还必须实现 IPrintTicketProvider 接口。

可以修改基于 GDI 的旧打印驱动程序,以便直接提供 PrintCapabilities 文档,但不需要进行此修改。 Windows Vista 打印子系统会为基于 GDI 的驱动程序创建 XML PrintCapabilities 文档,这些驱动程序不添加返回此类文档的功能。 但是,Windows Vista 打印子系统创建的 PrintCapabilities 文档仅包含 Microsoft Win32 函数 DeviceCapabilities 支持的有限参数集。 要使基于 GDI 的打印驱动程序提供打印机特性和功能的完整列表,它必须包含 IPrintTicketProvider 接口支持。

以下列表和图表说明了不同类型的打印驱动程序如何支持打印功能技术:

Unidrv 或 PScript5 打印驱动程序
IPrintTicketProvider 接口已添加到 Windows Vista 中的通用 (Unidrv) 和 PostScript (PScript5) 打印驱动程序。

Unidrv 或 PScript5 打印驱动程序插件
具有自定义功能的 Unidrv 和 Pscript5 打印驱动程序需要插件才能添加或移除这些功能,以及返回准确的 PrintCapabilities 文档。 Unidrv 和 PScript5 打印驱动程序的自定义功能插件必须支持 IPrintOemPrintTicketProvider 接口。

单片基于 GDI 和 XPSDrv 打印驱动程序
XPSDrv 打印驱动程序必须支持 IPrintTicketProvider 接口。 基于 GDI 的单片打印驱动程序必须支持 IPrintTicketProvider 接口,才能返回打印机功能和 Win32 函数 DeviceCapabilities 不提供的功能。

图表说明打印驱动程序中的打印功能支持。