一种同时支持浏览器和客户端发票打印的方法与流程

文档序号:15930823发布日期:2018-11-14 01:37阅读:2023来源:国知局

本发明涉及一种发票打印方法,具体地说,本发明涉及一种在windows操作系统中,同时支持ie浏览器和pc客户端发票打印的方法。

背景技术

目前,各企业开具增值税发票的方法是:当需要开具发票时,调用开票软件,商家或者购买方输入开票信息,开票软件根据输入的开票信息生成增值税发票。如果装有开票软件的客户端pc机连接有打印机,输入打印指令,打印机自动将该发票打印出来。或者,商家将开票软件生成的增值税发票以图片的格式或数据流的格式通过互联网发送给购买方,购买方下载图片格式的或数据流格式的发票,通过与pc机相连的打印机打印出来。这种打印方式只支持通过客户端pc机开票软件生成的发票的打印。

随着互联网平台的快速发展,许多商家特别是餐饮业、住宿业,其许多订单来自于互联网,在购买方购买商品或服务时,已将其开票信息录入到订单中。商家在开具发票时,希望直接利用购买方已输入的开票信息,直接在windows操作系统ie浏览器状态下生成发票,并将发票打印出来。



技术实现要素:

鉴于上述原因,本发明的目的是提供一种在windows操作系统中,同时支持ie浏览器和pc客户端发票打印的方法。

为实现上述目的,本发明采用以下技术方案:一种同时支持浏览器和客户端发票打印的方法,其包括如下步骤:

s1、生成com打印组件,将com打印组件注册到windows操作系统中;

具体方法为:

s1.1、继承windowsapi函数,实现windowsapi函数的注册接口和反注册接口,com打印组件的注册接口和反注册接口;

s1.2、通过windowsapi函数生成com打印组件的clsid标识;

s1.3、继承windowsidispatch接口,实现接口调用消息的分发接收,接收来自web调用和pc客户端调用的发票数据;

s1.4、定义直接打印接口和打印预览接口;

s1.5、编写发票打印模板,设定打印格式;安装打印机驱动程序;

s1.6、收到打印发票的指令,接收发票数据进行解析,填充发票打印模板,调用打印机驱动,打印发票;

s2、调用windows操作系统中的com打印组件,打印发票。

优选地,所述步骤s2调用windows操作系统中的com打印组件打印发票具体包括如下步骤:

s2.1、根据web提供的订单信息或根据pc客户端输入的开票信息生成发票json数据;

s2.2、调用com打印组件接口函数,发送发票打印消息数据给com打印组件;

s2.3、根据clsid标识查找windows系统注册表,找到注册表中的com打印组件,发送打印消息数据到com打印组件接口;

s2.4、com打印组件接收打印消息,解析json数据,调用发票打印模板,填充发票打印模板;

s2.5、将填充好的发票打印模板数据发送给打印机,调用打印机驱动,完成发票打印。

在本发明的具体实施例中,所述pc客户端利用c++调用com打印组件打印发票;所述web页面通过js脚本的方式加载ptprintinvoice.1已经注册的com打印组件打印发票。

由于本发明将具有发票打印功能的发票打印模块组件以com打印组件形式内嵌在windows系统中,当用户需要打印发票时,无论是通过web页面开具发票,还是通过客户端pc机开具发票,只需调用com打印组件即可完成发票的开具、打印,故,本发明实现了在windows操作系统中,同时支持ie浏览器和pc客户端机发票打印的目的。本发明的优点:1、同时支持ie浏览器和pc客户端的发票打印,兼容性好。2、避免由于实现发票打印的技术手段不同,而导致的打印效果不同的弊端。3、提升企业开发发票打印相关应用的集成效率,实现真正的企业内部办公自动化。

附图说明

图1是本发明同时支持ie浏览器和pc客户端发票打印的流程图;

图2是本发明生成com打印组件的流程图;

图3是本发明通过ie浏览器和pc客户端打印发票的流程图。

具体实施方式

下面结合附图和实施例对本发明的结构及特征进行详细说明。需要说明的是,可以对此处公开的实施例做出各种修改,因此,说明书中公开的实施例不应该视为对本发明的限制,而仅是作为实施例的范例,其目的是使本发明的特征显而易见。

如图1所示,本发明在windows操作系统中,同时支持ie浏览器和pc客户端发票打印的方法为:

s1、生成com打印组件,将com打印组件注册到windows操作系统中;

s2、调用windows操作系统中的com打印组件,开具发票,并打印发票。

本发明com打印组件具有设定发票打印模板、发票数据解析、生成发票、打印发票的功能。如图2所示,所述步骤s1生成com打印组件,并将com打印组件注册到windows操作系统中的方法如下:

s1.1、继承windowsapi函数,实现windowsapi函数的注册接口和反注册接口,com打印组件的注册接口和反注册接口;

s1.2、通过windowsapi函数生成com打印组件的clsid标识,clsid标识为com打印组件在windows操作系统中的唯一性;

当com打印组件注册到windows操作系统注册表后,会有个类标识(clsid标识),并且对应有个标识名称,例如ptprintinvoice.1,通过加载clsid或ptprintinvoice.1都可以进行组件实例化操作。

clsid的数据格式为:clsid:68bcd88f-9d31-4f9f-838e-4b130132383d;

s1.3、通过继承windowsidispatch接口,实现接口调用消息的分发接收,接收来自web调用和pc客户端调用的发票数据;

s1.4、定义直接打印接口和打印预览接口;

s1.5、编写发票打印模板,设定打印格式;安装打印机驱动程序;

s1.6、收到打印发票的指令,接收发票数据进行解析,填充发票打印模板,调用打印机驱动,打印发票。

本发明生成com打印组件,并将com打印组件注册到windows操作系统中后;无论是从ie浏览器途径开具发票,还是从pc客户端机途径开具发票,均可以通过调用windows操作系统中的com打印组件,开具发票,并最终将发票打印完成。

如图3所示,所述步骤s2具体包括如下步骤:

s2.1、根据web提供的订单信息或根据pc客户端输入的开票信息生成发票json数据;

s2.2、调用com打印组件接口函数,发送发票打印消息数据给com打印组件;

s2.3、根据clsid标识查找windows系统注册表,找到注册表中的com打印组件,发送打印消息数据到com打印组件接口;

s2.4、com打印组件接收打印消息,解析json数据,调用发票打印模板,填充发票打印模板;

s2.5、将填充好的发票打印模板数据发送给打印机,调用打印机驱动,完成发票打印。

下面分别举例说明,如何通过pc客户端和web页面调用/访问com打印组件打印发票。

实施例1:pc客户端调用/访问本发明com打印组件打印发票

利用c++调用com打印组件:

实施例2:web页面通过js脚本的方式加载ptprintinvoice.1已经注册的com打印组件打印发票

备注:

①使用try{}catch{}语句进行打印组件的实例对象创建的判断工作,首先执行try{}中的语句,如果创建实例对象失败,则走入catch{}语句中,使用alert(‘’)语句弹出提示框,提示用户没有安装打印组件,进行下载安装;

②打印组件注册进系统注册表后会有个类标识(clsid)标识,并且对应有个标识名称,例如ptprintinvoice.1,通过加载clsid或ptprintinvoice.1都可以进行组件实例化操作;

③web页面通过javascript脚本访问打印组件,首先通过varptprintinvobj=newactivexobject("ptprintinvoice.1");创建组件打印实例,实例对象名称为ptprintinvobj;

④调用ptprintinvobj.printinvoicepreview(stringify(invdata1));接口函数进行发票打印,将invdata1协议数据格式化处理后传入接口,进行发票打印。

由于本发明将具有发票打印功能的发票打印模块组件以com打印组件形式内嵌在windows系统中,当用户需要打印发票时,无论是通过web页面开具发票,还是通过客户端pc机开具发票,只需调用com打印组件即可完成发票的开具、打印,故,本发明实现了在windows操作系统中,同时支持ie浏览器和pc客户端机发票打印的目的。本发明的优点:1、同时支持ie浏览器和pc客户端的发票打印,兼容性好。2、避免由于实现发票打印的技术手段不同,而导致的打印效果不同的弊端。3、提升企业开发发票打印相关应用的集成效率,实现真正的企业内部办公自动化。

最后应说明的是:以上所述的各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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