打印程序开发资料.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
打印程序开发资料

基于组件模型的虚拟打印系统的研究与实现虚拟打印是利用某种方式截获操作系统的打印任务,将打印任务转换为图像文件并保存在指定目录的系统。通过虚拟打印系统,用户可以将任意可打印的文档转换为统一的图像文件,由一种应用程序进行浏览。因此在Web环境、多客户端情况下,客户端不需要为浏览多种应用程序的文件而安装多种应用程序,便于实现瘦客户端和降低系统的软件成本。本文通过研究比较现有的虚拟打印系统,提出建立基于组件模型的虚拟打印系统,主要介绍的技术包括:虚拟打印机的实现、虚拟打印机的安装卸载、系统二次开发接口等。1 Windows打印系统结构虚拟打印基于Windows打印体系,是对Windows打印系统的一种应用及拓展。微软的Windows NT系列打印体系结构由打印假脱机和一套打印驱动程序组成。应用程序对Win32 GDI函数的调用传送到GDI图形引擎,GDI图形引擎可以将绘制指令假脱到一个EMF文件中,或者与打印驱动程序连接,向假脱机绘制一个可打印的图像。假脱机组件解释EMF文件,他们可以在数据流中插入页面布局信息以及作业控制指令。然后假脱机将数据流发送给具有目标打印机I/O端口的串行、并行或网络端口的驱动程序。其体系结构如图1所示。2 虚拟打印系统的研究按照获取打印任务方式的不同,可以将虚拟打印系统分为3种类型:重写Print Processor,在假托模块中实现转换,例如Mabuse.De的VPrinter;采用回调机制在打印任务发送到Spoolez之前获取打印数据流,例如NortheastData公司的Image Printer Driver;通过监视Port Monitor获取打印任务数据,例如Adobe公司的Adobe AcrobatWriter。目前绝大部分虚拟打印系统都是独立的系统,使用各自的文件格式来保存打印结果,很少以组件的方式提供二次开发接口,使得上述虚拟打印系统很难与其他应用系统进行集成。本文研发的基于组件模型的虚拟打印系统,采用重写Print Processor方式实现打印任务的获取。该系统提供了丰富的二次开发接口,可以按照应用系统集成商的要求提供文档转换功能,最大限度地降低了应用系统的成本。3 虚拟打印系统的实现基于组件模型的虚拟打印系统主要包括2部分:打印机驱动程序模块和二次开发接口模块。其体系结构如图2所示:3.1 获取打印任务打印任务的截取,是整个虚拟打印系统的关键部分。从图1中可以看出,Print Processor负责将打印任务处理后发送到Port Monitor,Print Processor是一个可替换的DLL,安装DDK中的约定,实现以下6个函数,就可以自定义一个Print Processor。(1)EnumPrintProcessorDatatypes,该函数主要处理并返回打印处理器所能处理的数据类型;(2)ControlPrintProcessor,该函数主要提供方法供用户控制打印处理器,如停止、删除、重新开始打印任务等;(3)GetPrintProcessorCapabilities,该函数主要供Windows系统获取针对某种输入数据的处理能力;(4)OpenPrintProcessor,返回该打印处理器的句柄给系统;(5)PrintDocumentOnPrintProcessor,处理打印任务,将处理后的数据发送到Port Monitor或者转换为图像文件等;(6)ClosePrintProcessor,关闭打印处理器。图3详细说明在PrintDocumentOnPrintProcessor中如何将打印任务转换为图像文件的过程。3.2 生成指定格式、大小的图像虚拟打印系统获取的打印页面原始数据是EMF矢量图形文件。如果转换前的文档中没有大量的图片信息,那么转换后的EMF文件是比较小的,一般1页Word转换后在20~50 k大小。因此本系统提供了配置接口供用户选择最终保存的图像格式,目前支持JPG,GIF,PNG等常用的图像格式。可以按照如下方式修改图像的格式和大小:[ImageInfo]ImageWidth=1024ImageHeight=768ImageType=JPG以上信息设定后,转换生成的图片为JPG格式文件,图片宽为1 024 pixel,高为768 pixel。3.3 封装组件,提供二次开发接口二次开发接口是虚拟打印系统提供给第三方应用系统调用或设置的方法。良好丰富的二次开发接口,使得本系统可以快速便捷的与第三方应用系统进行集成,大大提高系统的应用范围。按照组件模型的思想,本系统中将二次开发接口封装成Activex组件,使得用户可以通过简单的JavaScript调用接口方法。3.3.1 安装、卸载打印机接口一般采用由最终用户通过在控制面板中选择添加打印机的方式来安装打印机。这种

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档