- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
虚拟打印相关
第一章 打印机体系结构和虚拟打印机
Windows打印体系结构
windows xp?的打印体系结构是由打印假脱机和一系列打印驱动程序组成。应用程序通过设备无关的Win32打印和GDI(图形设备接口)函数,创建打印作业并将其发送到不同的设备,如激光打印机、向量绘图仪、光栅打印机以及传真机。打印驱动程序包括一个允许用户控制可选属性的用户接口。
整个的打印流程如下: 应用程序通过调用GDI创建打印作业,应用程序对GDI的调用传递到GDI图形引擎,该引擎将绘制指令脱机处理为EMF文件(增强型图元文件)或者直接连接到打印机驱动程序上,然后将打印图像传递到假脱机系统。此时应用程序完成了打印文档的任务,用户可以自由使用应用程序完成其他任务,而打印假脱机则保证文档被打印。
打印假脱机将页面布局信息和作业控制指令加入数据流,然后将数据流发送到打印处理器,打印处理器检查打印假脱机文件的格式,对于EMF文件,它将内容的每一页回放给GDI,GDI把GDI命令分解成DDI(图形设备接口)定义的绘制图元,并把绘制图元送到打印驱动程序,打印机驱动程序将绘制图元绘制成打印机语言格式的原始数据,例如PCL等,接着原始数据被送到打印假脱机系统。接着打印假脱机将数据发送到语言监视器,语言监视器把数据发送到端口监视器,端口监视器用OS文件系统API往硬件端口写数据,最后数据被发送到打印机。
假脱机和打印机组件式可以替换的,这使得硬件供应商可以很容易对新硬件进行支持。整个打印体系结构如图1-1所示:
?
? 图1-1?打印体系结构图
在进行打印机驱动程序开发之前,首先需要明确的是:打印机驱动程序仅仅是Windows打印流程中的一个中间环节。一个打印机驱动程序是对一种特定打印机提供了一个图形函数集的动态链接库(DLL),它所提供的接口函数可以将与设备无关的输出信息转变为与设备相关的输出信息(指令和数据流)。为了能够充分理解打印机驱动程序在一个实际打印作业中的地位与功能,从而很好的完成其设计与开发,对Windows整个打印流程有一个系统的分析是非常必要的。下面的流程图(图1-2)给出的便是从一个应用程序发出打印请求开始,到本地的打印提供者将假脱机文件写到磁盘,然后该假脱机文件将在合适的时间被解析成具体的指令和数据,最后由本地端口监视器将解析过的数据流通过它所控制的端口发送到与之相连的打印机并最终完成打印的完整过程。
图1-2 windows打印流程图
?
?
下面步骤详细描述整个打印流程:
1:应用程序创建一个设备上下文并在其上绘制一个对象,然后调用GDI
中相应的函数接口向与此设备上下文相对应的打印机发出一个打印请求。
2:GDI调用相应的打印机驱动程序来处理打印请求。
3:打印驱动程序创建一个打印作业,并调用GDI函数将处理结果返回GDI。
4:GDI调用打印假脱机系统。
5:打印假脱机调用打印请求处理器以便将打印作业发送到应用程序指定的打印机上。
6:打印请求处理器将打印作业发送到本地打印提供者(目标打印机在本地)
或者网络打印打印提供者(目标打印机在网络中)。
7:如果打印作业的类型是非直接打印,那么本地打印提供者就将打印作业以
原始假脱机文件的格式存放在磁盘上,并且将后来的打印片段不断的附加到假脱机文件中,直到应用程序调用了EndDoc函数终止一个打印作业为止。以上第一到第七步可能是重复多次来产生一个完整的假脱机文件。
8:本地打印提供者启动一个后台线程,打印主线程根据对打印假脱机子系统
资源的监视情况,选定一个最佳的时刻触发假脱机文件的解析过程。此时,打印主线程将调用StartDoc函数启动打印处理器中的一个线程来开始解析工作。
9:打印机处理器线程调用ReadPrinter调用来激活本地打印提供者以便从磁盘读取前面所生成的打印假脱机文件。
10:打印处理器同时还调用了WritePrinter函数来激活打印机作业的语言监视器以便将数据通过物理端口发送到相应的打印机上。
11:打印语言监视器调用打印端口监视器的功能来给打印机发送数据。
12:打印端口监视器监测物理端口,通过物理端口给打印机发送数据。
13:端口监视器调用内核端口驱动程序完成物理端口与打印机间的通信。
14:完成打印作业后解析线程终止。
?
虚拟打印机
虚拟打印机同真实打印机一样,安装完毕,打开“控制面板”中的“打印机
和传真”,会看到所安装的虚拟打印机,可以像使用一台打印机一样使用它们。鼠标双击将其打开,可以对其“打印首选项”和“属性”进行修改,从而设定是否共享、可使用时间、是否后台打印和优先级,以及纸张大小、版式安排等。它们同样能截获所有Windows程序的打印操作,或模拟打印效
文档评论(0)