一种打印发票的方法

文档序号:8260491阅读:498来源:国知局
一种打印发票的方法
【技术领域】
[0001]本发明涉及发票打印技术领域,特别是涉及一种打印发票的方法。
【背景技术】
[0002]目前,打印发票一般是利用基于Linux嵌入式系统开发的开票机具(如税控收款机),在预先设置好固定的打印格式之后,每次打印发票,只需逐行解析发票数据逐行打印,即可完成发票的打印。由于打印格式难以修改,因而这种发票打印方案只能在发票上打印出预定的内容,而无法扩展打印内容(如打印出防伪二维码等),对不同发票的适应性差。

【发明内容】

[0003]本发明所要解决的技术问题是提供一种打印发票的方法,能方便地修改打印格式。
[0004]本发明解决上述技术问题的技术方案如下:一种打印发票的方法,该方法包括:
[0005]将尺寸与实际发票相同的空白的票样图片与所述实际发票按照相同方式都划分为若干个基本图像区域;记录来自所述票样图片的每个所述基本图像区域在所述票样图片上的位置,并定义来自所述票样图片的每个所述基本图像区域的区域属性;
[0006]将所述票样图片加载到内存中;
[0007]将来自所述实际发票的每个所述基本图像区域的图像数据赋予来自所述票样图片的相应基本图像区域,并使被赋予的每个所述图像数据的属性均符合相应基本图像区域的所述区域属性;
[0008]将来自所述票样图片的所有基本图像区域按照各自在所述票样图片上的位置,画到所述票样图片上,得到待打印发票文件;
[0009]将所述待打印发票文件转换为打印机可识别的点阵数据,并将所述点阵数据送到所述打印机进行打印,得到所述发票。
[0010]本发明的有益效果是:本发明中,通过将票样图片与实际发票按相同方式划分为若干基本图像区域,可以分别定义各基本图像区域的区域属性,这样,在需要修改打印格式、增删打印内容时,只需改变基本图像区域的划分方式,并重新定义各基本图像区域的区域属性,即可方便地改变打印格式,实现打印内容的扩展与减少,可见,本发明对于不同发票具有良好的适应性。
[0011]在上述技术方案的基础上,本发明还可以做如下改进:
[0012]进一步,在定义来自所述票样图片的每个所述基本图像区域的区域属性之后,在将所述票样图片加载到内存中之前,还包括:将来自所述票样图片的所有基本图像区域的区域属性保存到同一个模板文件中;则
[0013]使被赋予的每个所述图像数据的属性均符合相应基本图像区域的所述区域属性的方法包括:
[0014]解析所述模板文件,获得来自所述票样图片的每个所述基本图像区域的所述区域属性;
[0015]调整被赋予的每个所述图像数据的属性,使其符合相应基本图像区域的所述区域属性。
[0016]进一步,所述模板文件为xml文件。
[0017]进一步,在得到待打印发票文件之后,在将所述待打印发票文件转换为打印机可识别的点阵数据之前,还包括:判断所述待打印发票文件中的原点是否与所述打印机的打印原点重合,是则将所述待打印发票文件转换为打印机可识别的点阵数据,并将所述点阵数据送到所述打印机进行打印,得到所述发票,否则,校正所述待打印发票文件中的原点,使其与所述打印机的打印原点重合,再将所述待打印发票文件转换为打印机可识别的点阵数据,并将所述点阵数据送到所述打印机进行打印,得到所述发票。
[0018]进一步,将尺寸与实际发票相同的空白的票样图片与所述实际发票按照相同方式都划分得到的所述基本图像区域包括纯文本区域和纯图形区域;则
[0019]定义来自所述票样图片的每个所述基本图像区域的区域属性的方法包括:定义来自所述票样图片的每个所述纯文本区域的文本属性;定义来自所述票样图片的每个所述纯图形区域的图形属性;
[0020]将来自所述实际发票的每个所述基本图像区域的图像数据赋予来自所述票样图片的相应基本图像区域的方法包括:将来自所述实际发票的每个所述纯文本区域的文本数据赋予来自所述票样图片的相应纯文本区域;将来自所述实际发票的每个所述纯图形区域的图形数据赋予来自所述票样图片的相应纯图形区域;
[0021]使被赋予的每个所述图像数据的属性均符合相应基本图像区域的所述区域属性的方法包括:使被赋予到所述纯文本区域的每个所述文本数据的属性均符合相应纯文本区域的所述文本属性;使被赋予到所述纯图形区域的每个所述图形数据的属性均符合相应纯图形区域的所述图形属性。
【附图说明】
[0022]图1为本发明提出的打印发票的方法的一个实施例的流程图。
【具体实施方式】
[0023]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0024]本发明提出了一种打印发票的方法,图1为该方法一个实施例的流程图。如图1所示,该方法包括:
[0025]步骤101:将尺寸与实际发票相同的空白的票样图片与实际发票按照相同方式都划分为若干个基本图像区域;记录来自票样图片的每个基本图像区域在票样图片上的位置,并定义来自票样图片的每个基本图像区域的区域属性。
[0026]本发明中,票样图片是要打印的发票在计算机或其他控制设备中的底图,因而是空白的。票样图片要根据发票的打印需要来制作,因而其尺寸要与实际发票相同。
[0027]本步骤将票样图片和实际发票按照相同方式划分为若干个基本图像区域,这意味着,在划分完成后,来自票样图片的基本图像区域与来自实际发票的基本图像区域是一一对应的,这种对应关系指的是二者形状相同、尺寸相同、位于票样图片或实际发票的相同位置。同时,利用这种对应关系,该步骤通过记录来自票样图片的每个基本图像区域在票样图片上的位置,也就同时记录了来自实际发票的每个基本图像区域在实际发票上的位置。
[0028]本步骤所记录的来自票样图片的每个基本图像区域在票样图片上的位置有多种实现形式,例如,可以用每个基本图像区域的某个特殊点(如左上角的顶点)相对于票样图片的某个特殊点(如左上角的顶点、原点等)的距离来确定,也可用每个基本图像区域的各边相对于票样图片的某个特殊点(如如左上角的顶点、原点等)的距离来确定。本步骤记录来自票样图片的每个基本图像区域在票样图片上的位置的目的是在步骤104中将各基本图像区域重画到票样图片上确定位置使用,只要本步骤所记录的位置能实现该目的,都在本发明的保护范围之内。
[0029]该步骤可以定义来自票样图片的每个基本图像区域的区域属性,例如文本数据的字号、加粗、居中显示,图形数据的线条长度、粗细程度、形状、相对位置等,本步骤可以实现对各基本图像区域的区域属性的独立设置。
[0030]本步骤为本发明的关键步骤,在需要修改实际要打印的发票的内容、格式时,只需修改基本图像区域的划分方式,进而重新定义来自票样图片的每个基本图像区域的区域属性,即可通过后续步骤获得不同内容和格式的发票,这一过程简单易行。
[0031]步骤102:将票样图片加载到内存中。
[0032]该步骤在计算机或其他控制设备中进行,其中的票样图片为空白形式。
[0033]步骤103:将来自实际发票的每个基本图像区域的图像数据赋予来自票样图片的相应基本图像区域,并使被赋予的每个图像数据的属性均符合相应基本图像区域的区域属性。
[0034]在实际发票上,每个基本图像区域内是有数据的,如日期、金额、人员姓名、商家名称、防伪二维码、印章等,这些具体的数据因实际发票用途的不同而有所差异。
[0035]利用步骤101,实际发票和票样图片被划分为一一对应的基本图像区域,因而可将来自实际发票的每个基本图像区域的图像数据赋予来自票样图片的相应基本图像区域,这是一个对应赋值的过程。
[0036]由于步骤101定义了来自票样图片的每个基本图像区域的区域属性,而该区域属性是发票打印的实际需求决定的,因此,本步骤需要在上述图像数据赋值的基础上,再对来自票样图片的每个基本图像区域上被赋予的图像数据进行属性的调整,以使其属性符合该基本图像区域的区域属性的要求。
[0037]在本发明的一个实施例中,来自实际发票的某个基本图像区域的图像数据为文本数据,其值为日期“1991年3月27日”,则利用本步骤,可使来自票样图片的相应基本图像区域被赋予同样的文本数据日期值。另外,在步骤101中,定义来自票样图片的该基本图像区域的区域属性为:加粗、带下划线、居中显示、黑色、宋体字,则本步骤还要对来自票样图片的该基本图像区域上被赋予的日期值“1991年3月27日”的属性进行调整,使其在该基本图像区域上采用黑色宋体字加粗显示,下方带有下划线,且显示位置位于该基本图像区域的中间位置。
[0038]步骤104:将来自票样图片的所有基本图像区域按照各自在票样图片上的位置,画到票样图片上,得到待打印发票文件。
[0039]本步骤是一个重画发票的过程。
[0040]利用步骤103,来自票样图片的所有基本图像区域都被赋予了图像数据,且各图像数据的属性也都符合步骤101中定义的区域属性的要求,因而本步骤可将各基本图像区
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1