在Windows打印过程中监控打印数据的系统和方法技术方案

技术编号:8489613 阅读:470 留言:0更新日期:2013-03-28 08:28
本发明专利技术涉及若干在Windows打印过程中监控打印数据的系统和方法。通过这些系统和方法,可以通用的实现Windows操作系统的打印过程监控、打印审批、打印内容过滤、预览和保存、条码和水印嵌入、重新打印、异地还原打印等功能,并且通用的解决了打印作业高级属性设置和打印机特性属性设置丢失的问题。

【技术实现步骤摘要】

本专利技术涉及若干。通过这些系统和方法,可以通用的实现Windows操作系统的打印过程监控、打印审批、打印内容过滤、预览和保存、条码和水印嵌入、重新打印、异地还原打印等功能,并且通用的解决了打印作业高级属性设置和打印机特性属性设置丢失的问题。
技术介绍
Windows操作系统泛指微软公司推出的一系列操作系统。当前,微软发布的常规Windows操作系统(如ffindows XP, Vista, Windows 7等)均内置了打印管理系统,并且其架构自Windows 2000以来未发生本质改变,因此,本文所述之Windows打印管理系统,适用于Windows 2000及以上版本。微软将Windows打印管理系统的体系结构设计得非常复杂,其目的是为支持不同类型打印机和兼容早期型号打印机。Windows NT/2000的打印体系结构以后台打印为基础,并由GDI和一套打印机驱动程序所支持。图1描述了 Windows打印管理体系⑶I打印路径的方框图。为了能便于对流程的描述,先简单介绍一下图中出现的关键名词术语1.后台打印(Print SPOOLing)SPOOL 是 Simultaneous Peripheral Operation On-Line (即外部设备联机并行操作)的缩写,它是关于低速输入输出设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。SPOOLing系统既不同于脱机方式,也不同于直接稱合方式,SPOOLing技术实际上是一种外围设备同时联机操作技术,又称为排队转储技术。它在输入和输出之间增加了“输入池”和“输出池”的排队转储环节,以消除用户的“联机”等待时间。宏观上,虽然是多个进程在同时使用同一台设备,而对每一个进程而言,它们都认为自己是独占了一台设备。当然,该设备只是逻辑上的设备。SPOOLing系统实现了将独占设备变换为若干台对应的逻辑设备的功能。SPOOLing技术实质上是用户进程利用一个共享的存储区,并不是真正占用了此设备,用户进程把要完成的任务以文件的形式存入存储区,在存储区中排队并等待SPOOLing系统调度,只有被SPOOLing系统调度并输出,此项任务才真正完成,通过这一技术可以大大提高了共享设备的使用率,节约了硬件资源。SPOOLing技术的典型应用就是后台打印(Print SPOOLing):特定格式的文件(打印作业文件)被保存在一个磁盘上,而打印系统根据自己的速度检索并打印这些文档。打印机通常一次只能打印一个文件,并且需要几秒或者几分钟完成一个文件的打印。有了后台打印系统,多个进程可以直接将要打印的文档放入队列中而不需要做任何等待。一个进程只要将文档放入打印作业队列(即人们通常所说的发起打印作业)就可以处理其他任务,因为有另外一个独立的打印进程来负责处理打印队列并操作打印机进行打印,直到打印队列为空。在Windows系统中,微软将此功能称为“后台打印”,因此,本文中也将PrintSPOOLing称为后台打印。2.打印处理器打印处理器是Windows的后台打印体系中负责接收和处理打印作业的接口,即负责把打印进程放入后台打印队列中的打印格式文件转换到可送到打印机的原始数据格式,打印处理器也用于控制打印作业的暂停,恢复,取消。在Windows 2000/NT下,放入打印池中的打印格式文件一般是EMF格式的。GDI帮助应用程序把绘图请求记录成EMF格式,并把它快速写入磁盘,让应用程序回到正常操作的状态。Windows打印处理器(在LOCALSPL. DLL中)支持几种打印池格式,包括NT EMF,RAW 和 TEXT。3.打印作业数据格式打印进程放入后台打印队列中的打印作业文件的数据格式,通常被称为打印作业数据格式。而其文件被称为打印作业文件。打印作业数据格式通常有EMF、RAW和TEXT这二种。EMF数据格式是所有Windows应用程序的最常用打印作业数据格式。EMF打印作业文件通常比打印机能接收的原始数据小很多;RAW数据格式,指的是由打印程序直接生成可被打印机直接使用的数据,而不是由打印服务生成;TEXT数据格式只包括ANSI文本,打印处理器负责把文本字符串生成打印机接受的数据格式。结合图1和以上名词术语解释可以看出,Windows打印管理体系⑶I打印路径的主要流程是用户应用程序调用GDI和后台打印客户DLL导出的API入口点启动打印作业,GDI和后台打印程序在打印机驱动程序的帮助下处理打印作业,并把数据发送到各种硬件拷贝设备,包括激光打印机,喷墨打印机,绘图仪和传真机。其详细流程如图2所示,说明如下1.用户发起一个打印作业如果是EMF格式打印作业,用户应用程序对Win32⑶I函数的调用被Windows发送到⑶I图形引擎(简称⑶I),由其负责将绘图指令转换成增强型元文件(EMF)。此EMF文件和另一个包含当前打印设置的文件被传递给后台打印系统服务进程(SPOOLS. EXEhM时,应用程序完成了自己的任务,而后台打印系统保证文档被打印。如果是RAW格式打印作业,⑶I把⑶I命令分解成由DDI (device driverinterface,设备驱动程序接口)定义的绘元,并把绘元送到打印机驱动程序。打印机驱动程序将图元转换成打印机语言格式的原始数据(RAW格式数据),例如PCL,ESC/P, POSTSCRIPT。2.打印作业进入打印队列后台打印进程把任务发送到打印提供者,打印提供者操作真实打印机。打印机可以是本地打印提供者(LOCALSPL. DLL)管理的本地打印机,也可以是通过Windows网络打印提供者(WIN32SPL. DLL)管理的Windows网络打印机。如果打印机在远程计算机上,Windows网络服务会把后台打印作业文件发送到远程计算机,然后远程计算机将其作为本地计算机的打印作业放入打印队列。3.⑶I回放如果是EMF格式打印作业,本地打印提供者得到打印作业,并将它传递给打印处理器,打印处理器检查后台打印文件的格式。对于EMF文件,它将内容的每一页回放给GDI,⑶I把⑶I命令分解成由DDI (device driver interface,设备驱动程序接口)定义的绘元,并把绘元送到打印机驱动程序。打印机驱动程序将图元转换成打印机语言格式的原始数据(RAW格式数据),例如PCL,ESC/P,POSTSCRIPT。如果是RAW格式打印作业,因为已经是打印机语言格式的原始数据,则无此步骤。4.输出至打印机打印机语言格式的原始数据再次被送到后台打印程序的打印处理器中,处理器将其发送到语言监视器,语言监视器将数据送到端口监视器,端口监视器用Windows的文件系统API往硬件端口写数据,打印机解析数据并进行打印输出,整个打印作业完成。从以上Windows的打印架构可以看出,在打印路径的各个节点进行注入(Hook)均可以实现打印过程的监控。主要方法有以下两种1.利用进程内注入(Hook)技术获得打印内容首先,WINDOWS应用程序通常调用后台打印API来查询打印队列状态,控制打印作业,或往打印机发送数据。在系统默认的打印处理器支持的数据类型是RAW,RAff, RAW, NT EMF1. 003, NT EMF1. 006, NT EMF1. 0本文档来自技高网...

【技术保护点】
一种在Windows操作系统打印过程中提取、增加和(或)修改打印数据的系统:此系统能够从公知Windows操作系统的所有EMF格式打印任务中截获并提取打印数据和对打印数据进行增加和(或)修改。此系统包含注入模块和打印数据处理模块:此注入模块负责将此打印数据处理模块注入到Windows操作系统的Print?Spooler服务进程中,并将此Print?Spooler中所有打印处理器的引出函数PrintDocumentOnPrintProcessor替换为此打印数据处理模块的处理函数PrintDocumentOnPrintProcessor。此打印数据处理模块负责接收、提取、增加和(或)修改打印数据,并可以将此打印数据继续传递给相应的打印处理器,让Windows继续处理此打印任务。

【技术特征摘要】

【专利技术属性】
技术研发人员:张勇汪雷
申请(专利权)人:北京路模思科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1