本发明涉及打印领域,特别涉及一种发票打印方法、装置、设备及介质。
背景技术:
当前,对于纸质发票打印,通常需要依赖第三方软件和设备在开票之后调用内部逻辑进行打印操作。但是对于在其它前端已有发票数据,只需要进行单一打印或预览等简单操作的用户来说,这些都是非必要的,会增加用户的学习成本和操作复杂度,兼容性不强,降低了发票打印的效率和便捷程度。
技术实现要素:
有鉴于此,本发明的目的在于提供一种发票打印方法、装置、设备及介质,能够通过前端调用实现打印的相关操作,提高了打印的效率。其具体方案如下:
第一方面,本申请公开了一种发票打印方法,包括:
通过post接口,获取web前端和/或客户端发送的打印服务请求;
基于所述打印服务请求调用打印程序,以执行所述打印服务请求对应的打印操作;
获取打印执行结果,并发送给相应的所述web前端和/或所述客户端。
可选的,所述通过post接口,获取web前端和/或客户端发送的打印服务请求,包括:
通过运行本地安装的打印服务可执行文件,利用post接口接收web前端和/或客户端发送的打印服务请求;其中,
所述打印服务可执行文件包含基于windows通讯开发平台和restful架构创建的打印服务程序。
可选的,所述基于所述打印服务请求调用打印程序,包括:
根据所述打印服务请求,通过反射技术获取目标程序集的目标元数据,以调用所述打印程序。
可选的,所述发票打印方法,还包括:
接收所述web前端和/或所述客户端发送的目标发票的打印指令;其中,所述打印指令包括基于命令提示符的打印指令和基于链接地址的打印指令;所述链接地址为通过查询注册表中a标签的href属性确定的地址;
根据所述打印指令运行所述打印程序以打印所述目标发票。
第二方面,本申请公开了一种发票打印装置,包括:
请求获取模块,用于通过post接口,获取web前端和/或客户端发送的打印服务请求;
打印模块,用于基于所述打印服务请求调用打印程序,以执行所述打印服务请求对应的打印操作;
结果发送模块,用于获取打印执行结果,并发送给相应的所述web前端和/或所述客户端。
可选的,所述请求获取模块,包括:
请求接收单元,用于通过运行本地安装的打印服务可执行文件,利用post接口接收web前端和/或客户端发送的打印服务请求;其中,所述打印服务可执行文件包含基于windows通讯开发平台和restful架构创建的打印服务程序。
可选的,所述打印模块,包括:
程序调用单元,用于根据所述打印服务请求,通过反射技术获取目标程序集的目标元数据,以调用所述打印程序。
可选的,所述发票打印装置,还包括:
指令接收单元,用于接收所述web前端和/或所述客户端发送的目标发票的打印指令;其中,所述打印指令包括基于命令提示符的打印指令和基于链接地址的打印指令;所述链接地址为通过查询注册表中a标签的href属性确定的地址;
打印单元,用于根据所述打印指令运行所述打印程序以打印所述目标发票。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的发票打印方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的发票打印方法。
本申请中,通过post接口,获取web前端和/或客户端发送的打印服务请求;然后基于所述打印服务请求调用打印程序,以执行所述打印服务请求对应的打印操作;最后获取打印执行结果,并发送给相应的所述web前端和/或所述客户端。可见,通过post接口可以直接获取到不同的前端,以及本地其余客户端发送的打印服务请求,然后根据打印服务请求调用打印程序以执行打印操作,由此一来,便于web前端及其它客户端调用打印工具进行发票预览及打印,无需依赖第三方软件和设备,提高了打印功能的易用性和可操作性,提高了发票打印效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种发票打印方法流程图;
图2为本申请提供的一种具体的发票打印方法流程图;
图3为本申请提供的一种发票打印时序图;
图4为本申请提供的一种发票打印装置结构示意图;
图5为本申请提供的一种电子设备结构图。
具体实施方式
现有技术中,依赖第三方软件和设备在开票之后调用内部逻辑进行纸质发票打印,但是对于在其它前端已有发票数据,只需要进行单一打印或预览等简单操作的用户来说,增加了用户的学习成本和操作复杂度,降低了发票打印的效率和便捷程度。为克服上述技术问题,本申请提供一种易于前端调用的打印方法,能够通过前端调用实现打印的相关操作,提高了打印的效率。
本申请实施例公开了一种发票打印方法,参见图1所示,该方法可以包括以下步骤:
步骤s11:通过post接口,获取web前端和/或客户端发送的打印服务请求。
本实施例中,通过post接口获取web前端和/或其他客户端发送的打印服务请求,具体的,可以通过本地打印服务提供的post接口获取上述打印服务请求。例如图2所示,当打印服务(即nprintservice)启动后,web前端和/或客户端通过post接口发送打印服务请求以调用打印服务。
步骤s12:基于所述打印服务请求调用打印程序,以执行所述打印服务请求对应的打印操作。
本实施例中,当接收到上述打印服务请求后,根据上述打印服务请求调用打印程序,以便通过运行上述打印程序执行上述打印服务请求对应的打印操作。例如图2所示,当web前端和/或其他客户端发送打印服务请求来调用打印服务后,打印服务根据上述打印服务请求调用相应的打印逻辑方法,以处理相应的打印任务。
步骤s13:获取打印执行结果,并发送给相应的所述web前端和/或所述客户端。
本实施例中,在运行上述打印程序实现相应打印任务后,打印程序向上述打印服务返回打印处理结果,并由打印服务将上述打印处理结果发送给相应的web前端和/或客户端,以实现目标文件的打印或预览。由此可以便于用户进行打印结果统计。可以理解的是,本实施例提供了一种便于web前端和/或客户端调用的逻辑结构,可以通过web前端和/或客户端的调用实现打印操作,可以是纸质发票的打印,也可以是其余文件的打印;并且打印方便快捷,适用于已有需要打印数据的打印场景,且可适配不同前端的调用。
本实施例中,所述发票打印方法,还可以包括:接收所述web前端和/或所述客户端发送的目标发票的打印指令;其中,所述打印指令包括基于命令提示符的打印指令和基于链接地址的打印指令;所述链接地址为通过查询注册表中a标签的href属性确定的地址;根据所述打印指令运行所述打印程序以打印所述目标发票。即通过接收web前端和/或客户端发送的基于命令提示符的打印指令和基于链接地址的打印指令,直接调用打印程序实现打印操作,上述命令提示符可以为cmd命令。例如图2所示,web前端和/或客户端也可以通过发送cmd命令,或访问利用超文本语言(html)标签的a标签的href属性得到的连接地址,直接调用打印程序实现打印操作;具体的,上述连接地址可以通过查询注册表中预设的相应键值获取。但受限于上述两种指令的调用方式,无法将打印结果反馈给上述web前端和/或客户端。
由上可见,本实施例中通过post接口,获取web前端和/或客户端发送的打印服务请求;然后基于所述打印服务请求调用打印程序,以执行所述打印服务请求对应的打印操作;最后获取打印执行结果,并发送给相应的所述web前端和/或所述客户端。可见,通过post接口可以直接获取到不同的前端,以及本地其余客户端发送的打印服务请求,然后根据打印服务请求调用打印程序以执行打印操作,由此一来,便于web前端及其它客户端调用打印工具进行发票预览及打印,无需依赖第三方软件和设备,提高了打印功能的易用性和可操作性,提高了发票打印效率。
本申请实施例公开了一种具体的发票打印方法,参见图3所示,该方法可以包括以下步骤:
步骤s21:通过运行本地安装的打印服务可执行文件,利用post接口接收web前端和/或客户端发送的打印服务请求;其中,所述打印服务可执行文件包含基于windows通讯开发平台和restful架构创建的打印服务程序。
本实施例中,通过运行本地安装的打印服务可执行文件,可以向web前端和/或客户端提供post接口,由此通过上述post接口接收web前端和/或客户端发送的打印服务请求;其中,上述打印服务可执行文件包含基于windows通讯开发平台和restful架构创建的打印服务程序。可以理解的是,打印客户端安装后会自动运行上述打印服务可执行文件以启动打印服务,也可以通过在安装目标下通过双击上述打印服务可执行文件以启动打印服务。由此可见,基于windows通讯开发平台和restful架构创建的打印服务程序,可以向web前端和/或客户端提供可以实现打印功能调用的post接口。
步骤s22:根据所述打印服务请求,通过反射技术获取目标程序集的目标元数据,以调用所述打印程序。
本实施例中,接收到web前端和/或客户端通过访问上述post接口发送的打印服务请求后,上述打印服务通过程序集反射技术获取目标程序集中的目标元数据,以调用上述打印程序实现打印功能。
步骤s23:获取打印执行结果,并发送给相应的所述web前端和/或所述客户端。
其中,关于上述步骤s23的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。
本实施例中,通过运行本地安装的打印服务可执行文件,利用post接口接收web前端和/或客户端发送的打印服务请求;其中,打印服务可执行文件包含基于windows通讯开发平台和restful架构创建的打印服务程序;然后根据打印服务请求,通过反射技术获取目标程序集的目标元数据,以调用打印程序。可见,通过运行基于windows通讯开发平台和restful架构创建的打印服务程序,可以向web前端和/或客户端提供可以实现打印功能调用的post接口,由此接收相应的打印服务请求,并通过程序集反射调用打印程序,实现打印操作,可以使web前端和/或客户端进行调用实现打印相关操作,针对用户的单一的打印需求,不再需要启动额外的应用和对外设的依赖,极大增强了打印相关操作的易用性。
相应的,本申请实施例还公开了一种发票打印装置,参见图4所示,该装置包括:
请求获取模块11,用于通过post接口,获取web前端和/或客户端发送的打印服务请求;
打印模块12,用于基于所述打印服务请求调用打印程序,以执行所述打印服务请求对应的打印操作;
结果发送模块13,用于获取打印执行结果,并发送给相应的所述web前端和/或所述客户端。
由上可见,本实施例中通过post接口,获取web前端和/或客户端发送的打印服务请求;然后基于所述打印服务请求调用打印程序,以执行所述打印服务请求对应的打印操作;最后获取打印执行结果,并发送给相应的所述web前端和/或所述客户端。可见,通过post接口可以直接获取到不同的前端,以及本地其余客户端发送的打印服务请求,然后根据打印服务请求调用打印程序以执行打印操作,由此一来,便于web前端及其它客户端调用打印工具进行发票预览及打印,无需依赖第三方软件和设备,提高了打印功能的易用性和可操作性,提高了发票打印效率。
在一些具体实施例中,所述请求获取模块11具体可以包括:
请求接收单元,用于通过运行本地安装的打印服务可执行文件,利用post接口接收web前端和/或客户端发送的打印服务请求;其中,所述打印服务可执行文件包含基于windows通讯开发平台和restful架构创建的打印服务程序。
在一些具体实施例中,所述打印模块12具体可以包括:
程序调用单元,用于根据所述打印服务请求,通过反射技术获取目标程序集的目标元数据,以调用所述打印程序。
在一些具体实施例中,所述发票打印装置具体还可以包括:
指令接收单元,用于接收所述web前端和/或所述客户端发送的目标发票的打印指令;其中,所述打印指令包括基于命令提示符的打印指令和基于链接地址的打印指令;所述链接地址为通过查询注册表中a标签的href属性确定的地址;
打印单元,用于根据所述打印指令运行所述打印程序以打印所述目标发票。
进一步的,本申请实施例还公开了一种电子设备,参见图5所示,图中的内容不能被认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的发票打印方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括打印服务请求在内的数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windowsserver、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的发票打印方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的发票打印方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种发票打印方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
1.一种发票打印方法,其特征在于,包括:
通过post接口,获取web前端和/或客户端发送的打印服务请求;
基于所述打印服务请求调用打印程序,以执行所述打印服务请求对应的打印操作;
获取打印执行结果,并发送给相应的所述web前端和/或所述客户端。
2.根据权利要求1所述的发票打印方法,其特征在于,所述通过post接口,获取web前端和/或客户端发送的打印服务请求,包括:
通过运行本地安装的打印服务可执行文件,利用post接口接收web前端和/或客户端发送的打印服务请求;其中,
所述打印服务可执行文件包含基于windows通讯开发平台和restful架构创建的打印服务程序。
3.根据权利要求1所述的发票打印方法,其特征在于,所述基于所述打印服务请求调用打印程序,包括:
根据所述打印服务请求,通过反射技术获取目标程序集的目标元数据,以调用所述打印程序。
4.根据权利要求1至3任一项所述的发票打印方法,其特征在于,还包括:
接收所述web前端和/或所述客户端发送的目标发票的打印指令;其中,所述打印指令包括基于命令提示符的打印指令和基于链接地址的打印指令;所述链接地址为通过查询注册表中a标签的href属性确定的地址;
根据所述打印指令运行所述打印程序以打印所述目标发票。
5.一种发票打印装置,其特征在于,包括:
请求获取模块,用于通过post接口,获取web前端和/或客户端发送的打印服务请求;
打印模块,用于基于所述打印服务请求调用打印程序,以执行所述打印服务请求对应的打印操作;
结果发送模块,用于获取打印执行结果,并发送给相应的所述web前端和/或所述客户端。
6.根据权利要求5所述的发票打印装置,其特征在于,所述请求获取模块,包括:
请求接收单元,用于通过运行本地安装的打印服务可执行文件,利用post接口接收web前端和/或客户端发送的打印服务请求;其中,所述打印服务可执行文件包含基于windows通讯开发平台和restful架构创建的打印服务程序。
7.根据权利要求5所述的发票打印装置,其特征在于,所述打印模块,包括:
程序调用单元,用于根据所述打印服务请求,通过反射技术获取目标程序集的目标元数据,以调用所述打印程序。
8.根据权利要求5至7任一项所述的发票打印装置,其特征在于,还包括:
指令接收单元,用于接收所述web前端和/或所述客户端发送的目标发票的打印指令;其中,所述打印指令包括基于命令提示符的打印指令和基于链接地址的打印指令;所述链接地址为通过查询注册表中a标签的href属性确定的地址;
打印单元,用于根据所述打印指令运行所述打印程序以打印所述目标发票。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至4任一项所述的发票打印方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至4任一项所述的发票打印方法。
技术总结