CN107450869B - 一种pdf电子发票版式文件的在线打印系统及方法 - Google Patents
一种pdf电子发票版式文件的在线打印系统及方法 Download PDFInfo
- Publication number
- CN107450869B CN107450869B CN201710719188.9A CN201710719188A CN107450869B CN 107450869 B CN107450869 B CN 107450869B CN 201710719188 A CN201710719188 A CN 201710719188A CN 107450869 B CN107450869 B CN 107450869B
- Authority
- CN
- China
- Prior art keywords
- printing
- module
- file
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1204—Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1293—Printer information exchange with computer
- G06F3/1295—Buffering means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Record Information Processing For Printing (AREA)
Abstract
本发明公开了一种PDF电子发票版式文件的在线打印系统及方法,在本方案中,可实现在线对PDF文件进行打印,从而使客户在使用电子发票业务系统时候,直接通过业务系统即可快速高效实现在线打印PDF文件,而无需再手工下载PDF文件到本地再通过PDF阅览器导入文件进行打印,同时也无需通过浏览器直接打开PDF文件,再通过浏览器的打印功能进行单张打印,利用本发明既解决了单张打印问题也解决了批量打印问题,省时省力。并且,通过PDF打印服务模块及PDF打印组件模块,可实现跨浏览器调用,无需针对不同浏览器进行插件开发。
Description
技术领域
本发明涉及PDF文件在线打印技术领域,更具体地说,涉及一种PDF电子发票版式文件的在线打印系统及方法。
背景技术
电子发票目前是信息时代的产物,同普通发票一样,采用税务局统一发放的形式给商家使用,发票号码采用全国统一编码,采用统一防伪技术,分配给商家,在电子发票上附有电子税局的签名机制。电子发票成本低,绿色环保,广受企业青睐。目前电子发票以PDF版式文件为载体存在,企业需要报销的时候需要打印到A4纸张上面,目前电子发票有几种生存方式,很多电子发票服务商都是在云端自动生成PDF版式文件,一般情况下有几种生成方法,一种是带系统字体的PDF版式文件,一种是生成不带系统字体的PDF版式文件,其中带系统字体的版式文件优点是兼容性好,很多PDF打印接口都能正常打印,缺点是生成的PDF版式文件体积比较大,对电子发票开发商硬件存储成本增加。不带字体的PDF版式文件优点是体积比较精简,缺点是很多PDF打印接口打印之后显示乱码。
并且,目前很多电子发票业务系统都是基于浏览器的开发模式,通常电子发票打印需要手工下载到本地,然后通过本地PDF软件比如adoberead、foixpdf软件打印,或者通过浏览器打开后进行预览打印。可见,现有技术方案对PDF电子发票版式文件打印时,均需要手工下载至本地进行打印,无法在在浏览器上对电子发票进行单张或批量打印,打印过程繁琐。
发明内容
本发明的目的在于提供一种PDF电子发票版式文件的在线打印系统及方法,以实现在线打印PDF电子发票版式文件,简化发票打印过程,提高工作效率。
为实现上述目的,本发明实施例提供了如下技术方案:
一种PDF电子发票版式文件的在线打印系统,包括:
云端PDF管理模块,云端算法模块,PDF打印公用模块,PDF打印服务模块,PDF下载模块,PDF打印组件模块,打印接口模块;
所述云端PDF管理模块,用于接收对至少一个PDF文件进行打印的PDF文件打印指令,并获取与所述PDF文件打印指令对应的下载地址信息;
所述云端算法模块,用于对所述下载地址信息进行加密;
所述PDF打印公用模块,用于根据加密后的下载地址信息生成打印信息;
所述PDF打印服务模块,用于对所述打印信息校验成功后,调用所述PDF下载模块及所述打印信息中的下载地址信息将PDF文件下载至本地缓存,并将与所述PDF文件对应的本地PDF文件路径参数发送至PDF打印组件模块;
所述PDF打印组件模块,用于根据所述本地PDF文件路径参数,调用所述打印接口模块对所述PDF文件进行打印。
其中,本方案还包括:
PDF删除模块,用于删除所述本地缓存中的已打印的PDF文件。
其中,所述PDF打印公用模块采用json格式的jcallback方式将打印信息发送至所述PDF打印服务模块。
其中,所述PDF打印公用模块,具体用于将批量打印列表发送至所述PDF打印服务模块;所述批量打印列表中存在至少一个打印信息;
所述PDF打印服务模块,用于对所述批量打印列表进行解析校验,将检验成功的至少一个打印信息存入内存列表,循环调用所述内存列表中的每个打印信息,调用PDF下载模块及每个打印信息中的下载地址信息将PDF文件下载至本地缓存,并将本地PDF文件路径参数发送至PDF打印组件模块。
其中,所述PDF打印组件模块,具体用于对接收到的PDF文件路径参数校验成功后,调用打印接口模块对PDF文件进行打印。
其中,所述PDF打印服务模块与所述PDF打印组件模块保存于同一目录中,所述PDF打印服务模块通过http服务调用所述PDF打印组件模块的com接口组件,向所述PDF打印组件模块发送所述本地PDF文件路径参数。
一种PDF电子发票版式文件的在线打印方法,包括:
S11、云端PDF管理模块接收对至少一个PDF文件进行打印的PDF文件打印指令,并获取与所述PDF文件打印指令对应的下载地址信息;
S12、云端算法模块对所述下载地址信息进行加密;
S13、PDF打印公用模块根据加密后的下载地址信息生成打印信息;
S14、PDF打印服务模块对所述打印信息校验成功后,调用PDF下载模块及所述打印信息中的下载地址信息将PDF文件下载至本地缓存,并将与所述PDF文件对应的本地PDF文件路径参数发送至PDF打印组件模块;
S15、所述PDF打印组件模块根据所述本地PDF文件路径参数,调用打印接口模块对所述PDF文件进行打印。
其中,所述PDF打印服务模块调用PDF下载模块及所述打印信息中的下载地址信息将PDF文件下载至本地缓存之后,还包括:
通过PDF删除模块删除所述本地缓存中的已打印的PDF文件。
其中,所述S13和所述S14具体包括:
所述PDF打印公用模块将批量打印列表发送至所述PDF打印服务模块;所述批量打印列表中存在至少一个打印信息;
所述PDF打印服务模块对所述批量打印列表进行解析校验,将检验成功的至少一个打印信息存入内存列表,循环调用所述内存列表中的每个打印信息,调用PDF下载模块及每个打印信息中的下载地址信息将PDF文件下载至本地缓存,并将本地PDF文件路径参数发送至PDF打印组件模块。
其中,所述PDF打印服务模块将与所述PDF文件对应的本地PDF文件路径参数发送至PDF打印组件模块,包括:
所述PDF打印服务模块通过http服务调用所述PDF打印组件模块的com接口组件,向所述PDF打印组件模块发送所述本地PDF文件路径参数;其中,所述PDF打印服务模块与所述PDF打印组件模块保存于同一目录中。
通过以上方案可知,本发明实施例提供的一种PDF电子发票版式文件的在线打印系统,包括:云端PDF管理模块,用于接收对至少一个PDF文件进行打印的PDF文件打印指令,并获取与所述PDF文件打印指令对应的下载地址信息;云端算法模块,用于对所述下载地址信息进行加密;PDF打印公用模块,用于根据加密后的下载地址信息生成打印信息;PDF打印服务模块,用于对所述打印信息校验成功后,调用PDF下载模块及所述打印信息中的下载地址信息将PDF文件下载至本地缓存,并将与所述PDF文件对应的本地PDF文件路径参数发送至PDF打印组件模块;所述PDF打印组件模块,用于根据所述本地PDF文件路径参数,调用打印接口模块对所述PDF文件进行打印。
可见,在本方案中,可实现在线对PDF文件进行打印,从而使客户在使用电子发票业务系统时候,直接通过业务系统即可快速高效实现在线打印PDF版式文件,而无需再手工下载PDF文件到本地再通过PDF阅览器导入文件进行打印了,同时也无需通过浏览器直接打开PDF文件,再通过浏览器的打印功能进行单张打印,利用本发明既解决了单张打印问题也解决了批量打印问题,省时省力。并且,通过PDF打印服务模块及PDF打印组件模块,可实现跨浏览器调用,无需针对不同浏览器进行插件开发。本发明还公开了一种PDF电子发票版式文件的在线打印方法,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种PDF电子发票版式文件的在线打印系统结构示意图;
图2为本发明实施例公开的另一种PDF电子发票版式文件的在线打印系统结构示意图;
图3为本发明实施例公开的一种PDF电子发票版式文件的在线打印方法流程示意图;
图4为本发明实施例公开的一种具体的PDF电子发票版式文件的在线打印方法流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种PDF电子发票版式文件的在线打印系统及方法,以实现在线打印PDF电子发票版式文件,简化发票打印过程,提高工作效率。
参见图1,本发明实施例提供的一种PDF电子发票版式文件的在线打印系统,包括:
云端PDF管理模块100,云端算法模块200,PDF打印公用模块300,PDF打印服务模块400,PDF下载模块500,PDF打印组件模块600,打印接口模块700;
所述云端PDF管理模块100,用于接收对至少一个PDF文件进行打印的PDF文件打印指令,并获取与所述PDF文件打印指令对应的下载地址信息;
具体的,本实施例中的云端PDF管理模块100主要用于电子发票业务系统在浏览器前端页面,展示PDF,查询PDF,以列表形式展现已成功开具的电子发票,并让用户选中相应的PDF进行单张打印和批量打印,因此,本方案中的PDF文件打印指令为对至少一个PDF进行打印的打印指令。并且,本方案中的PDF文件打印指令,可以是对PDF格式的电子发票进行打印,也可以是针对任何的PDF格式的板式文件进行打印,在此并不具体限定。
所述云端算法模块200,用于对所述下载地址信息进行加密;
具体的,为了提高在线云端打印的安全性,在本方案中通过云端算法模块200在接口层面进行安全加密,在调用PDF打印公用模块300时需要传入密钥,其中密钥由云端算法模块200进行云端加密,避免本地javascript加密容易被破解,需要说明的是,本方案主要对PDF的URL地址进行加密。
所述PDF打印公用模块300,用于根据加密后的下载地址信息生成打印信息;其中,所述PDF打印公用模块300采用json格式的jcallback方式将打印信息发送至所述PDF打印服务模块400。
具体的,本方案中的PDF打印公用模块300主要用于基于浏览器采用javascript语言进行打印接口调用,有效桥连了云端PDF管理模块100和PDF打印服务模块400。可以从云端PDF管理模块100获取单张或者多张pdf打印信息,然后调用PDF打印服务模块400发送打印指令。
所述PDF打印服务模块400,用于对所述打印信息校验成功后,调用所述PDF下载模块500及所述打印信息中的下载地址信息将PDF文件下载至本地缓存,并将与所述PDF文件对应的本地PDF文件路径参数发送至PDF打印组件模块600;
具体的,本方案中的PDF打印服务模块400主要用于给PDF打印接口模块700提供http服务,打印接口模块700先调用PDF打印服务模块400,通过打印服务模块400进行安全校验,同时把打印请求发送到PDF打印组件模块600进行打印。PDF打印服务模块400对所述打印信息校验成功后,调用PDF下载模块500对传入的远程PDF地址将PDF文件下载到本地缓存,方便直接获取本地缓存路径传给打印组件模块600,同时PDF下载模块500还起到了减少远程传送数据流的作用,减轻了PDF打印服务模块400的数据压力,如果不采用下载地址,直接传入文件流,则对PDF打印服务模块400增加了压力,如果PDF文件流过大可能会导致传输失败,所以直接利用下载模块有效避免这个问题,让产品更加稳定可靠。
所述PDF打印组件模块600,用于根据所述本地PDF文件路径参数,调用所述打印接口模块700对所述PDF文件进行打印。
其中,所述PDF打印服务模块400与所述PDF打印组件模块600保存于同一目录中,所述PDF打印服务模块400通过http服务调用所述PDF打印组件模块600的com接口组件,向所述PDF打印组件模块600发送所述本地PDF文件路径参数。
具体的,本方案中的PDF打印组件模块600主要用于浏览器打印PDF版式文件在技术上的实现,同时PDF打印组件模块600采用com接口开发,封装了一些打印技术接口。目前的打印接口采用C#语言开发的,而C#语言开发的COM组件无法独立运行,经过研究发现需要在浏览器的目录放置接口组件才能正常运行,所以PDF打印服务模块600有效解决了这个问题,可以使得PDF打印组件能够被浏览器调用,而无需把打印组件放置到不同浏览器安装目录下面,因为打印组件模块是打印服务模块放在同一个目录中,打印服务模块作为载体,也就无需把打印接口放在浏览器目录即可通过浏览器进行打印。
需要说明的是,本方案中的PDF打印接口模块700主要调用不同的打印接口,使得打印灵活多变,采用有效的接口打印。打印组件模块600具备了桥连不同打印接口的作用,一次开发,兼容所有,如果开发商能找到其他打印接口,则可以直接改进打印接口模块即可,而无需修改其他模块。具体来说,本方案中的打印接口模块700采用jquery组件的$.jsonp,jcallback方式调用,因为通常的POST或者GET请求,无法与PDF打印服务模块正常交互,收到跨域访问的限制,利用jcallback方式有效解决了上述交互问题。
并且,PDF打印接口模块700根据本地文件的地址及打印参数对PDF进行打印,其中PDF打印接口模块700有如下技术开发,让打印得以实现,具体来说:目前C#版本的PdfPrintingNet接口能够成功实现没有带字体的PDF文件进行正常打印,可以作为打印接口1,PDFRender4NET接口能实现带字体的PDF文件进行打印,可以作为打印接口2,因此打印接口可以由业务系统根据实际情况选择相应的接口进行打印。
综上可见,本发明可实现跨浏览器访问,实现云端在线打印和批量打印,大大提高电子发票业务系统的产品亮点,同时也大大方便客户在使用开发商开发的电子发票业务系统时候,直接通过业务系统即可快速高效实现在线打印PDF版式文件,而无需再手工下载PDF文件到本地再通过PDF阅览器导入文件进行打印了,同时也无需通过google浏览器直接打开PDF文件,再通过google浏览器的打印功能进行单张打印,利用本发明既解决了单张打印问题也解决了批量打印问题,省时省力。
基于上述实施例,参见图2,本发明实施例提供的另一种PDF电子发票版式文件的在线打印系统,该系统与上述实施例中的系统相同部分不再赘述,具体本系统还包括:
PDF删除模块800,用于删除所述本地缓存中的已打印的PDF文件。
具体的,由于在线对PDF文件进行打印时,每次打印的PDF文件都需将下载至缓存,因此本地缓存中会存在很多缓存数据,因此在本方案中可通过PDF删除模块800对成功打印的PDF文件进行删除,减少系统冗余文件。
基于上述实施例,所述PDF打印组件模块600,具体用于对接收到的PDF文件路径参数校验成功后,调用打印接口模块对PDF文件进行打印。
需要说明的是,本方案还包括本地算法模块,本地算法模块主要为PDF打印组件模块400和PDF打印服务模块600提供算法支持,这两个模块需要调用本地算法模块对打印信息进行校验,并且本方案中的本地算法模块采用dll开发,开发为独立的dll模块与云端模块一样的算法,供打印服务模块和打印组件模块都能调用,校验打印报文的合法性。
基于上述实施例,本实施例中的PDF打印公用模块300,具体用于将批量打印列表发送至所述PDF打印服务模块400;所述批量打印列表中存在至少一个打印信息;
所述PDF打印服务模块400,用于对所述批量打印列表进行解析校验,将检验成功的至少一个打印信息存入内存列表,循环调用所述内存列表中的每个打印信息,调用PDF下载模块及每个打印信息中的下载地址信息将PDF文件下载至本地缓存,并将本地PDF文件路径参数发送至PDF打印组件模块。
具体来说,本方案中的打印公用模块300采用javascript开发,因为javascript无法跨域调用,采用普通的POST,GET请求无法完成与本地服务模块进行交互,只能请求无法返回结果,为此公用模块采用json格式的jcallback方式进行开发,具体开发步骤如下:
请求格式:
<content>base64加密的xml报文</content>
公用模块直接上述报文进行发送,有效解决浏览器传输中文乱码和下载地址转义问题,能够保证中文和下载地址以及其他参数被服务模块正常解析。
Xml请求报文格式:
<req><items>
<item><fileurl></fileurl><filekey/><filename/><width/><height/>
<printer/><orientation/><item>
<item><item>
<items><req>
参数说明:
Item为电子发票PDF打印明细数据
Fileurl为电子发票PDF远程下载地址
Filename为本地文件路径
Width为打印宽度
Height为打印高度
Printer为打印机名称
Orientation为打印方向
采用jcallback方式单张发票能够顺利得到解决。如果需要批量打印,因异步jcalback无法做到等待打印结果,则循环调用发送过去会导致打印PDF文件重复,这样无法实现网页批量打印,为此在本方案新增了items节点作为列表节点,打印的PDF列表直接一次性发送到打印服务程序,打印服务程序层面对打印的数据进行循环打印,打印一张成功之后才执行下一张命令。有效实现浏览器批量打印,PDF打印公用模块300发送批量打印列表到PDF打印服务模块400,PDF打印服务模块400进行批量打印。
可见,在本方案中,打印服务模块400实现了批量打印的功能,针对传输过来的数据,如果是PDF列表,则解出每条打印信息存放到内存列表中,对内存列表进行循环调用,对每一条明细进行打印,最终把所有结果汇总在一起返回给业务系统,有效解决javascriptjcallback无法同步获取返回结果的问题,不能将打印结果展现给客户的显示的问题。
需要说明的是,本方案中的打印服务模块400为采用C++builder语言开发的http服务程序,http服务程序采用C++builder自带的TIdHTTPServer模块进行封装,idhttp封装的http服务如果直接采用xml或者txt文本返回之后,浏览器是无法调用的,因此本发明采用了jcall模式
具体实现代码如下:
'jcallback({"Result":"0","Data":”'+sRetValue+”'})'
其中,sRetValue为base64加密的返回报文。
需要注意的是批量打印直接放在打印服务程序模块进行实现,公用模块只需要一次性传入打印列表,打印服务程序对文件进行下载,打印,循环调用。同时服务程序采用隐藏窗口和图标,让程序不可见,同时服务程序开发互斥功能,每次只能运行一个进程,有效解决端口冲突问题。
服务程序启动过程中调用写注册表模块,把当前服务程序设置为开机启动,下次重启电脑之后,服务程序能够自动启动,这样浏览器打印的时候就无需启动服务程序了。C++builder语言的createobject使用简单,稳定,无需导入com组件,只要输入组件名称即可。最后所有的组件和dll,com都与服务模块放在一起有效解决了浏览器打印找不到组件的错误。
下面对本发明实施例提供的在线打印方法进行介绍,下文描述的在线打印方法与上文描述的在线打印系统可以相互参照。
参见图3,本发明实施例提供的一种PDF电子发票版式文件的在线打印方法,包括:
S11、云端PDF管理模块接收对至少一个PDF文件进行打印的PDF文件打印指令,并获取与所述PDF文件打印指令对应的下载地址信息;
S12、云端算法模块对所述下载地址信息进行加密;
S13、PDF打印公用模块根据加密后的下载地址信息生成打印信息;
S14、PDF打印服务模块对所述打印信息校验成功后,调用PDF下载模块及所述打印信息中的下载地址信息将PDF文件下载至本地缓存,并将与所述PDF文件对应的本地PDF文件路径参数发送至PDF打印组件模块;
S15、所述PDF打印组件模块根据所述本地PDF文件路径参数,调用打印接口模块对所述PDF文件进行打印。
基于上述实施例,所述PDF打印服务模块调用PDF下载模块及所述打印信息中的下载地址信息将PDF文件下载至本地缓存之后,还包括:
通过PDF删除模块删除所述本地缓存中的已打印的PDF文件。
基于上述实施例,所述S13和所述S14具体包括:
所述PDF打印公用模块将批量打印列表发送至所述PDF打印服务模块;所述批量打印列表中存在至少一个打印信息;
所述PDF打印服务模块对所述批量打印列表进行解析校验,将检验成功的至少一个打印信息存入内存列表,循环调用所述内存列表中的每个打印信息,调用PDF下载模块及每个打印信息中的下载地址信息将PDF文件下载至本地缓存,并将本地PDF文件路径参数发送至PDF打印组件模块。
基于上述实施例,所述PDF打印服务模块将与所述PDF文件对应的本地PDF文件路径参数发送至PDF打印组件模块,包括:
所述PDF打印服务模块通过http服务调用所述PDF打印组件模块的com接口组件,向所述PDF打印组件模块发送所述本地PDF文件路径参数;其中,所述PDF打印服务模块与所述PDF打印组件模块保存于同一目录中。
参见图4,本发明实施例提供的一种具体的PDF电子发票版式文件的在线打印方法,包括:
S21:云端PDF管理模块展现云端库中的PDF文件列表,可以通过搜索查询对应的PDF文件,展现给用户。
S22:用户选中需要批量打印的PDF文件,通过云端接口获取PDF文件的远程地址,同时调用云端算法模块对传入的地址参数进行加密,最后由调用打印公用模块对打印报文组装为XML或者JSON格式报文,请求发送到打印服务模块。
S23:打印服务模块接受到打印信息,同时打印服务模块采用与云端算法模块同样的算法的本地算法,对传入的参数密钥和原文进行比对,如果比对成功则,对PDF远程地址进行下载到本地临时目录,然后重新组织报文新增传入本地PDF文件路径参数到PDF打印信息xml格式中发送给打印接口组件模块进行打印,打印成功之后把本地文件删除。
S24:打印组件模块接收到打印请求之后同样也先对传入的打印进行用相同的本地算法模块进行比对校验,校验通过之后,直接通过打印组件接口进行打印并返回结果。
需要说明的是,应用本方案所述的在线打印PDF电子发票版式文件的方法包括:
1、用户输入正确的账号密码登录到发票通平台。
2、进入发票通平台的发票记录查询页面。
3、针对查询出来的发票列表,用户勾选需要批量打印的PDF电子发票版式文件。
4、发票通批量打印功能采用本发明的云端打印方法进行在线批量打印。
5、最后显示打印成功与失败的信息展现给用户。
综上所述,本发明采用http服务开发技术,采用COM技术,采用javascriptjcallback技术,有效实现云端在线打印,在线批量打印pdf版式文件,同时本发明还保护com组件通过http服务模块调用,能够被不同的浏览器访问,保护跨浏览器访问COM组件。同时本发明还保护能够使得跨浏览器正常访问.net封装的dll接口,因为很多.net开发的dll,即便封装为com之后仍然无法被浏览器正常访问,必须要把dll放在浏览器安装目录下,采用本发明之后,无需放置到浏览器安装目录下。
可见本方案具有如下有益效果:
首先,通过云端批量打印PDF版式文件,实现电子发票业务系统,在线实时批量打印,提高了客户打印的效率。
其次,本发明的方法与系统有效解决技术瓶颈,利用多种技术结合的优点,让云端在线打印PDF和在线批量打印得以实现。
再次,本发明的方法与系统,能够兼容打印不同技术手段生成的电子发票PDF版式文件,而不至于采用单一打印组件导致打印乱码。
再次,本发明能够让.net开发的dll和com组件能够被不同的浏览器访问。而无需把组件安装到浏览器目录下。
最后,本发明创新的隐藏式http服务提供的本地浏览器调用,有效解决跨浏览器访问本地com组件和本地dll的技术难题,利用本发明的http服务有效解决浏览器批量打印的问题,同时也大大降低了跨浏览器开发成本,无需针对不同浏览器进行插件开发。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种PDF电子发票版式文件的在线打印系统,其特征在于,包括:
云端PDF管理模块,云端算法模块,PDF打印公用模块,PDF打印服务模块,PDF下载模块,PDF打印组件模块,打印接口模块;
所述云端PDF管理模块,用于接收对至少一个PDF文件进行打印的PDF文件打印指令,并获取与所述PDF文件打印指令对应的下载地址信息;其中,所述云端PDF管理模块用于电子发票业务系统在浏览器前端页面,展示PDF格式的电子发票,查询PDF格式的电子发票,以列表形式展现已成功开具的电子发票,并让用户选中相应的PDF格式的电子发票进行单张打印和批量打印,所述PDF文件打印指令是对PDF格式的电子发票进行打印的指令;
所述云端算法模块,用于对所述下载地址信息进行加密;
所述PDF打印公用模块,用于根据加密后的下载地址信息生成打印信息;
所述PDF打印服务模块,用于对所述打印信息校验成功后,调用所述PDF下载模块及所述打印信息中的下载地址信息将PDF文件下载至本地缓存,并将与所述PDF文件对应的本地PDF文件路径参数发送至PDF打印组件模块;
所述PDF打印组件模块,用于根据所述本地PDF文件路径参数,调用所述打印接口模块对所述PDF文件进行打印。
2.根据权利要求1所述的在线打印系统,其特征在于,还包括:
PDF删除模块,用于删除所述本地缓存中的已打印的PDF文件。
3.根据权利要求2所述的在线打印系统,其特征在于,所述PDF打印公用模块采用json格式的jcallback方式将打印信息发送至所述PDF打印服务模块。
4.根据权利要求3所述的在线打印系统,其特征在于,
所述PDF打印公用模块,具体用于将批量打印列表发送至所述PDF打印服务模块;所述批量打印列表中存在至少一个打印信息;
所述PDF打印服务模块,用于对所述批量打印列表进行解析校验,将检验成功的至少一个打印信息存入内存列表,循环调用所述内存列表中的每个打印信息,调用PDF下载模块及每个打印信息中的下载地址信息将PDF文件下载至本地缓存,并将本地PDF文件路径参数发送至PDF打印组件模块。
5.根据权利要求4所述的在线打印系统,其特征在于,
所述PDF打印组件模块,具体用于对接收到的PDF文件路径参数校验成功后,调用打印接口模块对PDF文件进行打印。
6.根据权利要求1-5中任意一项所述的在线打印系统,其特征在于,
所述PDF打印服务模块与所述PDF打印组件模块保存于同一目录中,所述PDF打印服务模块通过http服务调用所述PDF打印组件模块的com接口组件,向所述PDF打印组件模块发送所述本地PDF文件路径参数。
7.一种PDF电子发票版式文件的在线打印方法,其特征在于,包括:
S11、云端PDF管理模块接收对至少一个PDF文件进行打印的PDF文件打印指令,并获取与所述PDF文件打印指令对应的下载地址信息;其中,所述云端PDF管理模块用于电子发票业务系统在浏览器前端页面,展示PDF格式的电子发票,查询PDF格式的电子发票,以列表形式展现已成功开具的电子发票,并让用户选中相应的PDF格式的电子发票进行单张打印和批量打印,所述PDF文件打印指令是对PDF格式的电子发票进行打印的指令;
S12、云端算法模块对所述下载地址信息进行加密;
S13、PDF打印公用模块根据加密后的下载地址信息生成打印信息;
S14、PDF打印服务模块对所述打印信息校验成功后,调用PDF下载模块及所述打印信息中的下载地址信息将PDF文件下载至本地缓存,并将与所述PDF文件对应的本地PDF文件路径参数发送至PDF打印组件模块;
S15、所述PDF打印组件模块根据所述本地PDF文件路径参数,调用打印接口模块对所述PDF文件进行打印。
8.根据权利要求7所述的在线打印方法,其特征在于,所述PDF打印服务模块调用PDF下载模块及所述打印信息中的下载地址信息将PDF文件下载至本地缓存之后,还包括:
通过PDF删除模块删除所述本地缓存中的已打印的PDF文件。
9.根据权利要求8所述的在线打印方法,其特征在于,所述S13和所述S14具体包括:
所述PDF打印公用模块将批量打印列表发送至所述PDF打印服务模块;所述批量打印列表中存在至少一个打印信息;
所述PDF打印服务模块对所述批量打印列表进行解析校验,将检验成功的至少一个打印信息存入内存列表,循环调用所述内存列表中的每个打印信息,调用PDF下载模块及每个打印信息中的下载地址信息将PDF文件下载至本地缓存,并将本地PDF文件路径参数发送至PDF打印组件模块。
10.根据权利要求7-9中任意一项所述的在线打印方法,其特征在于,所述PDF打印服务模块将与所述PDF文件对应的本地PDF文件路径参数发送至PDF打印组件模块,包括:
所述PDF打印服务模块通过http服务调用所述PDF打印组件模块的com接口组件,向所述PDF打印组件模块发送所述本地PDF文件路径参数;其中,所述PDF打印服务模块与所述PDF打印组件模块保存于同一目录中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710719188.9A CN107450869B (zh) | 2017-08-21 | 2017-08-21 | 一种pdf电子发票版式文件的在线打印系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710719188.9A CN107450869B (zh) | 2017-08-21 | 2017-08-21 | 一种pdf电子发票版式文件的在线打印系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107450869A CN107450869A (zh) | 2017-12-08 |
CN107450869B true CN107450869B (zh) | 2020-07-31 |
Family
ID=60492892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710719188.9A Active CN107450869B (zh) | 2017-08-21 | 2017-08-21 | 一种pdf电子发票版式文件的在线打印系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107450869B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108222B (zh) * | 2018-01-11 | 2021-07-13 | 任海鹏 | 一种电子发票读取展示系统及方法 |
CN110275682B (zh) * | 2018-03-15 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 云打印方法、装置及系统 |
CN108765805A (zh) * | 2018-05-17 | 2018-11-06 | 北京东港瑞宏科技有限公司 | 一种电子发票查询打印系统 |
CN108804056A (zh) * | 2018-05-18 | 2018-11-13 | 北京票通信息技术有限公司 | 一种同时支持浏览器和客户端发票打印的方法 |
CN109086012A (zh) * | 2018-06-27 | 2018-12-25 | 中国直升机设计研究所 | 一种页面文件列表批量打印系统 |
CN110750222A (zh) * | 2019-09-19 | 2020-02-04 | 益萃网络科技(中国)有限公司 | 打印方法、装置、计算机设备和存储介质 |
CN111324317B (zh) * | 2020-02-18 | 2024-03-26 | 上海东普信息科技有限公司 | 本地打印面单方法、装置、设备及存储介质 |
CN111708501A (zh) * | 2020-06-23 | 2020-09-25 | 北京思特奇信息技术股份有限公司 | 一种门票远程安全打印系统及方法 |
CN112486432B (zh) * | 2020-12-04 | 2023-01-31 | 浙江诺诺网络科技有限公司 | 一种发票打印方法、装置、设备及介质 |
CN113918103A (zh) * | 2021-10-12 | 2022-01-11 | 上海中通吉网络技术有限公司 | 基于Web浏览器的打印控制方法 |
CN114281273B (zh) * | 2021-11-22 | 2023-07-25 | 航天信息股份有限公司 | 一种批量打印ofd电子发票版式文件的方法及系统 |
CN116382604B (zh) * | 2023-05-29 | 2023-10-10 | 天翼云科技有限公司 | 一种在网页打印pdf文件的方法、系统、存储介质、设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090063201A (ko) * | 2009-05-29 | 2009-06-17 | 김태엽 | 파일포맷 문서변환 파일서버와 서버프린트스풀링 방식 풀프린팅 프린트서버를 통한 웹 기반 서버 저장 문서파일의 웹브라우저 네트워크 프린팅 방법 |
CN106293554A (zh) * | 2016-08-15 | 2017-01-04 | 浙江工业大学 | 一种云打印系统及云打印机 |
CN106406779A (zh) * | 2016-09-29 | 2017-02-15 | 贾琨 | 电子发票打印方法、系统及设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008040991A (ja) * | 2006-08-09 | 2008-02-21 | Nec Corp | 印刷システム,印刷方法並びに印刷用プログラム |
JP6098396B2 (ja) * | 2013-06-28 | 2017-03-22 | ブラザー工業株式会社 | 端末装置とプリンタ |
CN104484140B (zh) * | 2014-12-31 | 2017-07-07 | 湖南强智科技发展有限公司 | 打印方法和系统 |
JP6555892B2 (ja) * | 2015-02-06 | 2019-08-07 | キヤノン株式会社 | 画像形成装置及び画像形成装置による印刷制御方法 |
KR20170085221A (ko) * | 2016-01-14 | 2017-07-24 | 에스프린팅솔루션 주식회사 | 클라우드 서버, 사용자 단말장치, 화상형성장치, 문서 관리 방법 및 인쇄 제어 방법 |
CN106201377A (zh) * | 2016-07-05 | 2016-12-07 | 深圳市印点点科技有限公司 | 多平台智能云打印系统 |
-
2017
- 2017-08-21 CN CN201710719188.9A patent/CN107450869B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090063201A (ko) * | 2009-05-29 | 2009-06-17 | 김태엽 | 파일포맷 문서변환 파일서버와 서버프린트스풀링 방식 풀프린팅 프린트서버를 통한 웹 기반 서버 저장 문서파일의 웹브라우저 네트워크 프린팅 방법 |
CN106293554A (zh) * | 2016-08-15 | 2017-01-04 | 浙江工业大学 | 一种云打印系统及云打印机 |
CN106406779A (zh) * | 2016-09-29 | 2017-02-15 | 贾琨 | 电子发票打印方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107450869A (zh) | 2017-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107450869B (zh) | 一种pdf电子发票版式文件的在线打印系统及方法 | |
CN110535660B (zh) | 一种基于区块链的取证服务系统 | |
US20220276910A1 (en) | Dynamically integrating a client application with third-party services | |
US8645942B2 (en) | Software update syndication | |
CN110169033A (zh) | 增强型电子邮件服务 | |
CN101473675B (zh) | 移动设备用户体验的虚拟化 | |
CN107992759B (zh) | 实现电子印章的装置、方法及计算机可读存储介质 | |
CA2632793A1 (en) | Information server and mobile delivery system and method | |
CN103281187A (zh) | 安全认证方法、设备和系统 | |
CN112241298A (zh) | 页面显示方法及装置、存储介质、电子装置 | |
CN105141632A (zh) | 用于查看页面的方法和装置 | |
CN108052550B (zh) | 年金数据接收方法、装置、计算机设备和存储介质 | |
US7565543B1 (en) | System and method for authenticating a web page | |
CN113064562A (zh) | 基于区块链的人机交互打印方法及打印系统 | |
Averin et al. | Malicious QR-Code threats and vulnerability of blockchain | |
CA2853386C (en) | Mobile solution for importing and signing third-party electronic signature documents | |
JP2018106452A (ja) | 電子署名サーバ、中継サーバ、電子署名プログラム、及び中継プログラム | |
CN113658010B (zh) | 电子投保单生成方法、装置、设备及存储介质 | |
CN103023974B (zh) | 网站消息告知方法和装置 | |
CN114648775A (zh) | 一种基于邮件采集电子发票的方法及装置 | |
CN113706299B (zh) | 数据处理的方法、装置、电子设备及介质 | |
CN108052842A (zh) | 签名数据的存储、验证方法及装置 | |
CN109951565B (zh) | 供应链管理系统的数据传输方法、装置、介质和电子设备 | |
CN113064563A (zh) | 基于区块链的打印方法 | |
CN104484198A (zh) | 一种安装应用程序的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Room 01 and 02, 10 / F, building 4, zone 3, No. 186, South Fourth Ring West Road, Fengtai District, Beijing 100070 Applicant after: GUOXIN ELECTRONIC BILL PLATFORM INFORMATION SERVICE Co.,Ltd. Address before: 100089 Beijing, Haidian District West Third Ring Road, No. 13, layer 1-1303, No. 87 Applicant before: BEST WONDER ELECTRONIC INVOICE DATA SERVICE Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |