打印机驱动程序体系结构

重要

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

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

通过调用 Microsoft Win32 GDI 或在 Windows Vista、Windows Presentation Foundation (WPF) 函数中,应用程序可创建打印作业。 Win32 函数会将应用程序数据作为 EMF 记录进行后台处理,以供 EMF 打印处理器稍后播放,或者可以立即呈现每个文档页面的可打印图像。 WPF 函数将应用程序数据作为 XPS 后台处理文件进行后台处理。

在 Windows Vista 之前,应用程序使用 DEVMODEW 结构将打印机设置传达给打印机。 在 Windows Vista 中,打印票证和打印功能技术会传达打印机设置,以便打印机设置在打印机和应用程序中更具兼容性。

无论是立即执行还是在打印处理期间执行,图像呈现均在打印驱动程序中执行:

  • 基于 GDI 的打印机驱动程序在从后台处理文件播放 EMF 记录期间执行图像呈现,并由 GDI 呈现引擎控制。 在呈现操作期间,GDI 呈现引擎会调用相应的 Windows 2000 及更高版本的打印机驱动程序,以寻求帮助。

  • XPSDrv 打印驱动程序使用一系列处理筛选器来处理 XPS 后台处理文件内容,以便输出到打印机。

Windows 2000 及更高版本的基于 GDI 的打印机驱动程序必须:

  • 通过提供 GDI 无法支持的特定于打印机的绘图功能,帮助 GDI 呈现打印作业。

  • 将呈现的图像数据流发送到打印后台处理程序。

  • 提供与打印机和打印文档关联的可修改配置参数的用户界面,例如选择输入和输出托盘、份数、图像分辨率和方向等。

XPSDrv 打印机驱动程序与基于 GDI 的驱动程序具有相同的用户界面责任,并且还负责处理打印作业数据和将数据发送给打印机。 但是,XPSDrv 打印机驱动程序不需要使用 GDI 来呈现打印机的页面图像。

Windows 2000 及更高版本的打印机驱动程序由一组打印机驱动程序组件组成,将驱动程序的绘图和用户界面操作划分为单独的 DLL。 XPSDrv 打印机驱动程序还由将配置和绘图和呈现函数划分为单独的对象的组件组成。

本部分旨在帮助了解 Windows 2000 及更高版本的操作系统支持的不同类型的打印机驱动程序,但还应记住,操作系统随附以下三个打印机驱动程序:

Microsoft 通用打印机驱动程序

Microsoft PostScript 打印机驱动程序

Microsoft 绘图仪驱动程序

这三个驱动程序支持最终用户可以立即购买的大多数打印设备。 仅当打印设备与相应的 Microsoft 提供的驱动程序不兼容时,才需要编写打印机驱动程序。 只需将打印机数据文件添加到 Microsoft 提供的驱动程序之一,即可支持大多数新打印机。 可能需要新驱动程序的设备包括包含由专有命令序列控制的硬件绘图加速器的驱动程序。

本部分包含以下介绍 Windows 打印体系结构的主题。

XPSDrv 打印机驱动程序

GDI 打印机驱动程序

打印票证和打印功能技术

编写 64 位打印机驱动程序