就是从应用程序调用GDI开始,到打印出文档的全过程,包括中间的过程、生成的临时文件、使用到的dll等文件,越详细越好。
谢谢!
參考答案:1. Windows XP 客户端计算机上的用户选择打印文档。
2. 如果此文档是从 Windows 应用程序提交的,则该应用程序将调用图形设备接口 (GDI),而该接口将调用与目标打印机相关联的打印机驱动程序。GDI 和驱动程序通过使用该应用程序中的文档信息来互相交换数据,以便用该打印机的语言来提交打印作业,并将它传送到客户端打印后台处理程序。如果客户端使用的是非 Windows 操作系统,或非 Windows 应用程序,则其他组件将替代 GDI 执行相似任务。
3. 客户端计算机向打印服务器递交打印作业。对于 Windows XP、Windows 2000 或 Windows NT 4.0 客户端,客户端打印后台处理程序都会向服务器端打印后台处理程序发出远程过程调用 (RPC),该服务器端打印后台处理程序使用打印路由器轮询客户端的远程打印提供程序。然后远程打印提供程序向服务器打印后台处理程序发出另一个 RPC,服务器打印后台处理程序通过网络接收打印作业。
4. 在打印服务器上,来自 Windows XP、Windows 2000 或 Windows NT 4.0 客户端的打印作业都使用增强型图元文件 (EMF) 数据类型。多数其他应用程序都使用 RAW(打印就绪)数据类型。
5. 服务器上的路由器将打印作业传送给服务器上的本地打印提供程序(打印后台处理程序的组件),后者将后台打印该作业(将其写入磁盘)。
6.本地打印提供程序将轮询打印处理器。打印处理器识别该作业的数据类型并接收打印作业。然后打印处理器根据其数据类型转换打印作业。
7. 如果在客户端计算机上定义了目标打印机,打印服务器服务将决定服务器的打印后台处理程序是转换该打印作业,还是分配另一种数据类型。然后将打印作业传送给本地打印提供程序,后者将其写入磁盘。
8. 对打印作业的控制被传递给分隔页处理器,分隔页处理器将根据指定,在作业的前面添加分隔页。
9.取消后台打印到打印监视器的作业。对于双向打印机,语言监视器将处理发送方和打印机之间的双向通讯,然后将打印作业传送到端口监视器。如果打印机不是双向打印机,打印作业将被直接传送到端口监视器,后者将它发送到目标打印机(或其他网络打印服务器)。
10.该打印机接收打印作业,然后将每一页转换成位图格式,再打印出来。