单据分页打印方法、单据分页打印系统及计算机装置制造方法及图纸

技术编号:17779345 阅读:27 留言:0更新日期:2018-04-22 07:40
本发明专利技术提出了一种单据分页打印方法、单据分页打印系统、计算机装置及计算机可读存储介质,其中单据分页打印方法包括:获取打印模板的数据区绑定的数据数组,数据数组中包括所有单据的数据;解析数据数组中每个单据的数据,对每个单据进行分页,获取页面缓存数组;将页面缓存数组在web页面上进行打印预览显示;向打印机发送打印指令,以控制打印机打印所有单据。本发明专利技术针对单据批量打印的应用场景,无需下载第三方控件,使打印服务更加灵活,实现更加有效的单据数据分页打印,比较省时省力,满足用户对单据的个性化定制打印需求。

【技术实现步骤摘要】
单据分页打印方法、单据分页打印系统及计算机装置
本专利技术涉及单据打印
,具体而言,涉及一种单据分页打印方法、单据分页打印系统、计算机装置及计算机可读存储介质。
技术介绍
随着企业应用互联网化和ToB(ToBusiness)业务创新化,现有企业使用的打印服务通常与应用或系统完全绑定,不仅难以满足企业用户多样化的打印场景需求,而且会让许多开发者疲于应对并发性能、插件安装、系统兼容等问题。其中,云打印作为一种PaaS(PlatformasaService,平台即服务)公有云服务,面向企业级用户提供与打印相关的平台、应用、工具和服务,充分满足用户对单据的个性化定制打印需求。基于web的打印服务中,最大的难点在于如何按照定制的模板内容解析数据,从而生成个性化的打印单据,并实现精准的打印。在实际应用中,经常会遇到单据分页打印的场景,如批量打印报销单、采购明细单、人员信息表等,要求每个单据的内容在打印时独立成页。相关技术中基于web(WorldWideWeb,万维网)页面打印方案有很多:(1)使用浏览器自带的打印功能。该方案中,浏览器根据用户设置的页面大小和web内容的多少来自行决定分页位置,很难人为控制,而且不能连续打印多张单据。(2)使用pdf文件打印,即web前端从服务器下载pdf文件流,使用Adobe插件打开并打印。该方案虽然可以基本满足要求,但是需要下载Adobe插件。(3)基于第三方控件的方法,需要下载第三方控件,比较费时费力。并且在批量打印的应用场景下,打印服务web页面一次性获取到多张单据的数据,针对一个打印模板进行数据解析。相关技术中的打印服务在解析打印模板之后,将数据按照先后顺序,由上到下的逐行填入模板的相应位置,当一张纸被数据行(即实际的打印内容)填满后才进行分页,并不具备按单据分页的功能。然而现有的web端分页功能,大多都是使用空数据行填充的方式,通过计算并控制页面显示的尺寸来实现单据的分页。因此,现有的分页方法使用上灵活性差,不能满足用户的多样性需求。
技术实现思路
本专利技术旨在至少解决现有技术或相关技术中存在的技术问题之一。为此,本专利技术的一个方面在于提出了一种单据分页打印方法。本专利技术的另一个方面在于提出了一种单据分页打印系统。本专利技术的再一个方面在于提出了一种计算机装置。本专利技术的又一个方面在于提出了一种计算机可读存储介质。有鉴于此,根据本专利技术的一个方面,提出了一种单据分页打印方法,包括:获取打印模板的数据区绑定的数据数组,数据数组中包括所有单据的数据;解析数据数组中每个单据的数据,对每个单据进行分页,获取页面缓存数组;将页面缓存数组在web页面上进行打印预览显示;向打印机发送打印指令,以控制打印机打印所有单据。本专利技术提供的单据分页打印方法,获取打印模板的数据区所绑定的数据数组,其中每个数据数组的元素为一个单据的全部数据,即数据数组包括了所有单据的数据,而数据区为打印模板的数据容器。对数据数组进行循环,解析每个单据的数据,进而对每个单据进行分页操作,生成一个待渲染的页面缓存数组,页面缓存数组中的每一个元素即为实际打印时一张打印纸的打印内容。进一步地将页面缓存数组在web页面上进行打印预览显示,在用户查看到打印预览内容并进行了确认后系统向打印机发送打印指令,以控制打印机打印所有单据。本专利技术针对单据批量打印的应用场景,无需下载第三方控件,使打印服务更加灵活,实现更加有效的单据数据分页打印,比较省时省力,满足用户对单据的个性化定制打印需求。根据本专利技术的上述单据分页打印方法,还可以具有以下技术特征:在上述技术方案中,优选地,解析数据数组中每个单据的数据,对每个所述单据进行分页,获取页面缓存数组的步骤,具体包括:获取打印模板的固定行数;获取任一单据的数据的索引值,计算索引值与固定行数的比值;将单据的数据添加至页面缓存数组的当前页;判断比值是否为整数;若比值为整数,则在页面缓存数组的当前页的内容后插入分页符作为打印模板的一张单据的打印内容。在该技术方案中,对每个单据进行分页操作的步骤具体包括:获取打印模板的固定行数,循环获取每一单据的数据的索引值,计算索引值与固定行数的比值,将单据的数据添加至页面缓存数组的当前页,如果该比值为整数,表明该单据的数据可以完整地填充在打印模板的完整的一页中,则通过css属性在页面缓存数组的当前页的内容后插入分页符作为打印模板的一张单据的打印内容,如果比值不为整数则停止当前循环,继续下次循环,即获取并添加该单据中的下一条数据再进行索引值的比较。直至数组数据中的单据是否全部完成解析并添加至页面缓存数组为止。使用css属性对存放打印内容的HTML进行精准的控制,不需要额外下载任何插件,不仅成本小,而且具有非常好的跨平台性。同时通过对单据进行固定行数分页,提高分页可控性,而且能够实现连续打印多张单据。在上述任一技术方案中,优选地,获取打印模板的固定行数的步骤,具体包括:获取打印纸张的高度;根据打印纸张的高度计算出打印纸张可容纳的数据条数,将数据条数作为固定行数。在该技术方案中,当设置了打印模板的打印纸张大小后,根据打印纸张高度和打印模板,可以计算出每张打印纸张可容纳的数据条数n(即行数,n>0),将计算所得的固定行数n作为一个属性值赋给数据区,能够精确地获取固定行数,进而实行按固定行数进行单据分页打印。在上述任一技术方案中,优选地,打印模板的数据区包括主数据区和子数据区,其中主数据区与多个子数据区关联;解析数据数组中每个单据的数据,对每个单据进行分页,获取页面缓存数组的步骤,具体包括:将任一单据的主表数据填入至主数据区中,形成打印模板的一条打印内容,添加至页面缓存数组的当前页;获取与主数据区关联的子数据区;解析出与主数据区关联的子数据区内的单据的数据的子表字段数据,将子表字段数据作为打印模板的一条打印内容,添加至页面缓存数组的当前页;在单据的数据全部添加至页面缓存数组后,在页面缓存数组的当前页的内容后插入分页符作为打印模板的一张单据的打印内容。在该技术方案中,打印模板至少包括一个主数据区以及关联该主数据区的若干子数据区,多个单据的数据数组包括了所有单据的数据,每条数据包含多个字段,其中子表字段包含多条子表数据。对每个单据进行分页操作的步骤还可以为:将任一单据的主表数据填入至主数据区中形成打印模板的一条打印内容,并将该条打印内容添加至页面缓存数组的当前页,进一步地获取与主数据区相关联的多个子数据区,解析出多个子数据区内的单据的数据的子表字段数据,将子表字段数据作为打印模板的一条打印内容,并逐条添加至页面缓存数组的当前页。判断一条单据的全部数据是否添加完毕(包括主、子数据区),如添加完毕,则通过css属性在页面缓存数组的当前页的内容后插入分页符作为打印模板的一张单据的打印内容。使用css属性对存放打印内容的HTML进行精准的控制,不需要额外下载任何插件,不仅成本小,而且具有非常好的跨平台性。同时能够更好的实现复杂模板的单据分页,使得单据分页更加灵活,应用性更强。在上述任一技术方案中,优选地,将页面缓存数组在web页面上进行打印预览显示的步骤,具体包括:将每页单据的打印内容作为table页签,插入至HTML页面中;将每页单据的打印内容的样式和内容解析为HTML字本文档来自技高网
...
单据分页打印方法、单据分页打印系统及计算机装置

【技术保护点】
一种单据分页打印方法,其特征在于,包括:获取打印模板的数据区绑定的数据数组,所述数据数组中包括所有单据的数据;解析所述数据数组中每个所述单据的数据,对每个所述单据进行分页,获取页面缓存数组;将所述页面缓存数组在web页面上进行打印预览显示;向打印机发送打印指令,以控制所述打印机打印所有所述单据。

【技术特征摘要】
1.一种单据分页打印方法,其特征在于,包括:获取打印模板的数据区绑定的数据数组,所述数据数组中包括所有单据的数据;解析所述数据数组中每个所述单据的数据,对每个所述单据进行分页,获取页面缓存数组;将所述页面缓存数组在web页面上进行打印预览显示;向打印机发送打印指令,以控制所述打印机打印所有所述单据。2.根据权利要求1所述的单据分页打印方法,其特征在于,所述解析所述数据数组中每个所述单据的数据,对每个所述单据进行分页,获取所述页面缓存数组的步骤,具体包括:获取所述打印模板的固定行数;获取任一所述单据的数据的索引值,计算所述索引值与所述固定行数的比值;将所述单据的数据添加至所述页面缓存数组的当前页;判断所述比值是否为整数;若所述比值为整数,则在所述页面缓存数组的当前页的内容后插入分页符作为所述打印模板的一张单据的打印内容。3.根据权利要求2所述的单据分页打印方法,其特征在于,所述获取所述打印模板的所述固定行数的步骤,具体包括:获取打印纸张的高度;根据所述打印纸张的高度计算出所述打印纸张可容纳的数据条数,将所述数据条数作为所述固定行数。4.根据权利要求1所述的单据分页打印方法,其特征在于,所述打印模板的数据区包括主数据区和子数据区,其中所述主数据区与多个所述子数据区关联;所述解析所述数据数组中每个所述单据的数据,对每个所述单据进行分页,获取所述页面缓存数组的步骤,具体包括:将任一所述单据的主表数据填入至所述主数据区中,形成所述打印模板的一条打印内容,添加至所述页面缓存数组的当前页;获取与所述主数据区关联的子数据区;解析出与所述主数据区关联的子数据区内的所述单据的数据的子表字段数据,将所述子表字段数据作为所述打印模板的一条打印内容,添加至所述页面缓存数组的当前页;在所述单据的数据全部添加至所述页面缓存数组后,在所述页面缓存数组的当前页的内容后插入分页符作为所述打印模板的一张单据的打印内容。5.根据权利要求2至4中任一项所述的单据分页打印方法,其特征在于,所述将所述页面缓存数组在所述web页面上进行打印预览显示的步骤,具体包括:将每页所述单据的打印内容作为table页签,插入至HTML页面中;将每页所述单据的打印内容的样式和内容解析为HTML字符串片段,并输入至预存缓存数据中;在所有所述单据的打印内容全部解析为所述HTML字符串片段后,将所述预存缓存数据中所有所述HTML字符串片段拼接成完整的HTML字符串;将所述完整的HTML字符串插入至所述web页面进行显示。6.根据权利要求2至4中任一项所述的单据分页打印方法,其特征在于,所述将所述页面缓存数组在所述web页面上进行打印预览显示,具体包括:对任一页所述页面缓存数组中的所述单据的打印内容进行渲染,并将渲染后的所述单据的打印内容插入至所述web页面进行显示,直至所有所述单据的打印内容都插入至所述web页面进行显示。7.一种单据分页打印系统,其特征在于,包括:第一获取单元,用于获取打印模板的数据区绑定的数据数组,所述数据数组中包括所有单据的数据;分页单元,用...

【专利技术属性】
技术研发人员:鲁潇潇刘昆鹏
申请(专利权)人:用友网络科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1