一种打印文件的处理方法及装置与流程

文档序号:21406973发布日期:2020-07-07 14:41阅读:131来源:国知局
一种打印文件的处理方法及装置与流程

本发明涉及信息安全技术领域,特别涉及一种打印文件的处理方法及装置。



背景技术:

二维码又称二维条码,常见的二维码比传统的条形码能存更多的信息,也能表示更多的数据类型。

二维条码/二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。

打印监控与审计系统在打印输出时,需要在输出纸张中嵌入二维码。当前打印输出叠加二维码的方法为,在bmp、jpg等栅格图片中直接绘制二维码,然后将图片统一传给打印机完成打印输出。对于分辨率较高的栅格图片,占用空间非常大,对于网络打印机,需要较大的网络带宽传输打印数据,严重影响监控系统性能及打印输出效率,emf(enhancedmetafile,增强元文件)格式文件与bmp等格式图片相比较内存及磁盘占用空间都小很多,所以在打印监控与审计系统中使用emf文件作为打印输出文件,但是emf文件属于矢量图片,无法直接在其上面绘制二维码。



技术实现要素:

根据本发明实施例提供的方案解决的技术问题是使用emf文件作为打印输出文件时,无法直接在其上面绘制二维码。

根据本发明实施例提供的一种打印文件的处理方法,包括:

终端通过调用playenhmetafile函数,将待打印的增强元文件emf图像绘制到用于绘制打印机输出的打印机dc(devicecontext,设备上下文)中;

所述终端通过调用setpixel函数,将预存的用于叠加在emf图像中的二维码的像素点矩阵数据绘制到所述打印机dc中;

所述终端通过调用endpage函数,将所述打印机dc中已绘制的所述emf图像和所述二维码的像素点矩阵数据输送到打印机中进行打印,以便所述打印机输出叠加有所述二维码的emf图像。

优选地,所述终端预存的用于叠加在emf图像中的二维码的像素点矩阵数据包括:

所述终端通过使用qr编码规则对所述二维码所要包含内容信息字符串进行编码,生成并保存用于叠加在emf图像中的二维码的像素点矩阵数据;

其中,所述二维码像素点矩阵每个点的数值为1或0。

优选地,还包括:

所述终端在打印文件之前,判断所述打印文件是否为emf格式文件;

若判断所述打印文件不为emf格式文件,则所述终端将所述待打印文件转换成emf格式文件。

优选地,所述终端通过调用setpixel函数,将预存的用于叠加在emf图像中的二维码的像素点矩阵数据绘制到所述打印机dc中包括:

所述终端依次读取所述二维码的每个像素点矩阵数据;

当所述二维码的像素点矩阵数据值为1时,则所述终端通过调用setpixel函数,将所读取的所述二维码的像素点矩阵数据绘制到所述打印机dc中;

当所述二维码的像素点矩阵数据值为0时,则所述终端不作处理。

优选地,所述打印机输出叠加有所述二维码的emf图像包括以下之一:

所述二维码叠加在所述emf图像的左上方位置;

所述二维码叠加在所述emf图像的右上方位置;

所述二维码叠加在所述emf图像的左下方位置;

所述二维码叠加在所述emf图像的右下方位置。

根据本发明实施例提供的一种打印文件的处理装置,包括:

绘制模块,用于通过调用playenhmetafile函数,将待打印的增强元文件emf图像绘制到用于绘制打印机输出的打印机设备上下文dc中,以及通过调用setpixel函数,将预存的用于叠加在emf图像中的二维码的像素点矩阵数据绘制到所述打印机dc中;

打印输出模块,用于通过调用endpage函数,将所述打印机dc中已绘制的所述emf图像和所述二维码的像素点矩阵数据输送到打印机中进行打印,以便所述打印机输出叠加有所述二维码的emf图像。

优选地,还包括:

生成及保存模块,用于通过使用qr编码规则对所述二维码所要包含内容信息字符串进行编码,生成并保存用于叠加在emf图像中的二维码的像素点矩阵数据;

其中,所述二维码像素点矩阵每个点的数值为1或0。

优选地,还包括:

判断模块,用于在打印文件之前,判断所述打印文件是否为emf格式文件,以及当若判断所述打印文件不为emf格式文件,则将所述待打印文件转换成emf格式文件。

优选地,所述绘制模块具体用于依次读取所述二维码的每个像素点矩阵数据,当所述二维码的像素点矩阵数据值为1时,则通过调用setpixel函数,将所读取的所述二维码的像素点矩阵数据绘制到所述打印机dc中,以及当所述二维码的像素点矩阵数据值为0时,则不作处理。

优选地,所述打印输出模块中的打印机输出叠加有所述二维码的emf图像包括以下之一:

所述二维码叠加在所述emf图像的左上方位置;

所述二维码叠加在所述emf图像的右上方位置;

所述二维码叠加在所述emf图像的左下方位置;

所述二维码叠加在所述emf图像的右下方位置。

根据本发明实施例提供的方案,可以带来如下效果:

1)使用emf在保持图形的精度、不失真的情况下,与bmp文件相比较,emf文件体积小很多。对于网络打印机来说,打印内容都是通过网络传输到打印机中,emf文件格式由于文件体积小,节省大量网络带宽,减少了大批量打印中可能出现的网络堵塞。

2)在大批量需要嵌入二维码的打印作业中,使用emf文件进行打印,可以减少打印过程中打印机自身内存的消耗,可以加快打印机输出纸张的速度,极大地提升了添加二维码打印的效率。

附图说明

图1是本发明实施例提供的一种打印文件的处理方法流程图;

图2是本发明实施例提供的一种打印文件的处理装置示意图

图3是本发明实施例提供的打印文件的处理系统示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是本发明实施例提供的一种打印文件的处理方法流程图,如图1所示,包括:

步骤s101:终端通过调用playenhmetafile函数,将待打印的增强元文件emf图像绘制到用于绘制打印机输出的打印机设备上下文dc中;

步骤s102:所述终端通过调用setpixel函数,将预存的用于叠加在emf图像中的二维码的像素点矩阵数据绘制到所述打印机dc中;

步骤s103:所述终端通过调用endpage函数,将所述打印机dc中已绘制的所述emf图像和所述二维码的像素点矩阵数据输送到打印机中进行打印,以便所述打印机输出叠加有所述二维码的emf图像。

其中,所述终端预存的用于叠加在emf图像中的二维码的像素点矩阵数据包括:所述终端通过使用qr编码规则对所述二维码所要包含内容信息字符串进行编码,生成并保存用于叠加在emf图像中的二维码的像素点矩阵数据;其中,所述二维码像素点矩阵每个点的数值为1或0。

本发明实施例还包括:所述终端在打印文件之前,判断所述打印文件是否为emf格式文件;若判断所述打印文件不为emf格式文件,则所述终端将所述待打印文件转换成emf格式文件。

其中,所述终端通过调用setpixel函数,将预存的用于叠加在emf图像中的二维码的像素点矩阵数据绘制到所述打印机dc中包括:所述终端依次读取所述二维码的每个像素点矩阵数据;当所述二维码的像素点矩阵数据值为1时,则所述终端通过调用setpixel函数,将所读取的所述二维码的像素点矩阵数据绘制到所述打印机dc中;当所述二维码的像素点矩阵数据值为0时,则所述终端不作处理。

具体地说,所述打印机输出叠加有所述二维码的emf图像包括以下之一:所述二维码叠加在所述emf图像的左上方位置;所述二维码叠加在所述emf图像的右上方位置;所述二维码叠加在所述emf图像的左下方位置;所述二维码叠加在所述emf图像的右下方位置。

图2是本发明实施例提供的一种打印文件的处理装置示意图,如图2所示包括:绘制模块201,用于通过调用playenhmetafile函数,将待打印的增强元文件emf图像绘制到用于绘制打印机输出的打印机设备上下文dc中,以及通过调用setpixel函数,将预存的用于叠加在emf图像中的二维码的像素点矩阵数据绘制到所述打印机dc中;打印输出模块202,用于通过调用endpage函数,将所述打印机dc中已绘制的所述emf图像和所述二维码的像素点矩阵数据输送到打印机中进行打印,以便所述打印机输出叠加有所述二维码的emf图像。

本发明实施例还包括:生成及保存模块203,用于通过使用qr编码规则对所述二维码所要包含内容信息字符串进行编码,生成并保存用于叠加在emf图像中的二维码的像素点矩阵数据;其中,所述所述二维码像素点矩阵每个点的数值为1或0。

本发明实施例还包括:判断模块204,用于在打印文件之前,判断所述打印文件是否为emf格式文件,以及当若判断所述打印文件不为emf格式文件,则将所述待打印文件转换成emf格式文件。

其中,所述绘制模块201具体用于依次读取所述二维码的每个像素点矩阵数据,当所述二维码的像素点矩阵数据值为1时,则通过调用setpixel函数,将所读取的所述二维码的像素点矩阵数据绘制到所述打印机dc中,以及当所述二维码的像素点矩阵数据值为0时,则不作处理。

其中,所述打印输出模块202中的打印机输出叠加有所述二维码的emf图像包括以下之一:所述二维码叠加在所述emf图像的左上方位置;所述二维码叠加在所述emf图像的右上方位置;所述二维码叠加在所述emf图像的左下方位置;所述二维码叠加在所述emf图像的右下方位置。

本发明实施例使用windowsgdi(graphicsdeviceinterface,图形设备接口)接口函数直接在打印机dc上面绘制二维码。gdi是负责操作系统与绘图程序之间的信息交换,处理所有windows程序的图形输出,gdi提供了一系列的函数,应用程序可以使用它们在显示器、打印机等设备上生成图形化的输出结果。

图3是本发明实施例提供的打印文件的处理系统示意图,如图3所示,打印输出所使用的文件格式为emf文件格式,emf占用空间小,网络打印时,较小的emf格式可以节省带宽,传输速度快,打印效率高,具体包括:

步骤1:在使用emf文件进行打印作业时,终端程序调用windowsapicreatedc获取打印机设备上下文dc。

dc是一个windowsgdi数据结构,它包含了某个设备的绘制属性。图像绘制调用都是借助于设备上下文对象。设备上下文是设备无关的,所以它既可以用于绘制屏幕,也可以用于绘制打印机输出。后面流程中的所有操作都是依赖于打印机dc与打印机驱动交互信息来完成整个打印过程。

步骤2:终端程序开始一个打印作业;

首先调用startdoc函数(打印作业的指令函数)以打印机dc作为参数,来通知打印机驱动程序准备开始一个打印作业。

步骤3:然后调用startpage函数(打印页面函数),以打印机dc为参数,通知打印机驱动程序开始准备接收打印数据。

步骤4:终端程序接着绘制emf图像到打印机dc;通过调用playenhmetafile函数,同样是以打印机dc为参数,在指定的打印机dc中绘制需要打印的emf图像。

步骤5:在绘制二维码前,终端程序使用qr二维码编码规则将二维码所要包含内容信息字符串进行编码,生成二维像素点矩阵数据,像素矩阵每个数据值为0或1。

步骤6:绘制二维码到打印机dc上;

通过多次调用windowsgdi函数setpixel,在程序设定的坐标位置,依次将二维像素矩阵表示的每个像素点进行绘制,如果矩阵点数据为1绘制黑色像素点,为0则不绘制,这样整个二维码就绘制到了打印机dc上。二维码便叠加到了emf图像上面;这样当打印机输出时,二维码随同着emf图像一起打印到输出纸张上。

步骤7:最后通知打印机将准备好的数据输出到纸张;

通过调用endpage函数,完成当前页面的打印,在输出的打印页面上会叠加刚才绘制的二维码图像到输出纸张上。重复上面步骤,开始继续进行下一页打印。

步骤8:所有页面打印完成,终端程序结束所有打印作业。

根据本发明实施例提供的方案,可以带来如下效果:

1)使用emf(enhancedmetafile)增强元文件格式,在保持图形的精度、不失真的情况下,与bmp文件相比较,emf文件体积小很多。对于网络打印机来说,打印内容都是通过网络传输到打印机中,emf文件格式由于文件体积小,节省大量网络带宽,减少了大批量打印中可能出现的网络堵塞。

2)在大批量需要嵌入二维码的打印作业中,使用emf文件进行打印,可以减少打印过程中打印机自身内存的消耗,可以加快打印机输出纸张的速度,极大地提升了添加二维码打印的效率。

尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1