网站地图    收藏   

主页 > 后端 > 网站安全 >

Windows打印体系结构简析与虚拟打印 - Windows操作系

来源:自学PHP网    时间:2015-04-17 18:33 作者: 阅读:

[导读] 这两天整理以前的论文,把那时候的毕业设计又翻出来温习了一下。虚拟打印机驱动程序。当时一直没有太搞懂自己编写的打印驱动究竟是怎么个角色,所谓的迷你驱动和微软统一驱动...

这两天整理以前的论文,把那时候的毕业设计又翻出来温习了一下。

虚拟打印机驱动程序。当时一直没有太搞懂自己编写的打印驱动究竟是怎么个角色,

所谓的迷你驱动和微软统一驱动又有啥不同。呵呵,可以说是写得有些稀里糊涂。

 

这里不讨论具体的实现细节,仅从全局架构的角度分析一下

Windows打印体系和打印机驱动的关系。

 

不过要澄清的是,一般而言的打印机驱动程序不仅仅包括了打印驱动部分,

还包括了假脱机体系中的打印处理器甚至是端口监视器,

这些一堆DLL文件、GPD文件、Inf文件等等所组成的驱动程序,

而严格意义上来说,打印驱动仅仅包括图形渲染和用户界面两个部分

 

用Photoshop画了一张结构图来:

 


 

不知道为什么会有“假脱机”这么古怪拗口的名字,anyway,大致结构就是这样。

其中带方框的部分都是可以编写安装的。

 

所谓的微软统一驱动,就是系统默认的驱动,而迷你驱动就是在此基础上进行个性化定制。

迷你驱动包括GPD文件和资源DLL,

GPD文件就是一个脚本,定义了“打印机首选项”中将出现那些设置,有那些选项可选

资源DLL就是一个仅仅包含Resource的DLL,提供给GPD使用其中的资源。

 

UI-Plugin 就是在“打印机首选项”中定义一些特殊的设置页面

 

Render-Plugin则可以对渲染绘制过程进行特殊的处理

 

打印处理器负责SPL文件操作 EMF/RAW 文件操作等

 

因此,虚拟打印机有两种方式可以实现:

第一种,在打印处理器中做手脚,截取SPL缓冲文件,解析分解成EMF文件

第二种,在Render-Plugin中做处理,在进行图形渲染的时候将图像绘制到其他地方,例如一个BMP文件

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论