打印报表生成方法、装置、设备及存储介质制造方法及图纸

技术编号:33466606 阅读:15 留言:0更新日期:2022-05-19 00:45
本发明专利技术涉及人工智能技术,揭露了一种打印报表生成方法,包括:接收打印请求参数,其中打印请求参数包含打印报表数据及预设的打印模板名称;将打印报表数据加载到预设的缓存中;根据打印模板名称加载打印模板,将打印模板存入缓存中,将打印报表数据、静态图片名及字体文件名填充到打印模板中,得到初始打印模板;获取对应的静态压缩图片及字体压缩对象,并利用静态压缩图片及字体压缩对象更新初始打印报表,得到打印报表。此外,本发明专利技术还涉及区块链技术,打印模板可存储于区块链的节点。本发明专利技术还提出一种打印报表生成装置、电子设备以及存储介质。本发明专利技术可以提高打印报表生成效率。本发明专利技术可以提高打印报表生成效率。本发明专利技术可以提高打印报表生成效率。

【技术实现步骤摘要】
打印报表生成方法、装置、设备及存储介质


[0001]本专利技术涉及人工智能
,尤其涉及一种打印报表生成方法、装置、电子设备及计算机可读存储介质。

技术介绍

[0002]报表通常使用表格来展示动态数据,是数据的最直观表达,各行各业均使用报表记录数据,不同行业不同部门对于报表需要展示的维度不同,例如生产行业需要生产报表、财务人员需要财务报表、市场人员需要市场营销报表、业务人员需要行业数据表。
[0003]当前基于开源框架JasperReport的打印报表生成方法存在如下问题:1、图片和模板文件等静态资源频繁加载,消耗了大量CPU;2、相同的字体和图片重复压缩,消耗了大量CPU;3、数据文件xml解析采用DOM方式,消耗了大量内存;4、线程池(ThreadPoolExecutor)中引用大对象,导致存放方法名(finalizer)对象的队列,占用了大量内存。
[0004]综上所述,当前打印报表生成的效率有待提升。

技术实现思路

[0005]本专利技术提供一种打印报表生成方法、装置及计算机可读存储介质,其主要目的在于解决打印报表生成效率低的问题。
[0006]为实现上述目的,本专利技术提供的一种打印报表生成方法,包括:
[0007]接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称;
[0008]读取所述打印报表数据,并将所述打印报表数据存到预设的缓存中;
[0009]设置打印相关参数;
[0010]根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表;
[0011]基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表。
[0012]可选地,所述根据所述打印模板名称加载打印模板,包括:
[0013]基于所述打印模板名称,查询预设的缓存中是否存在对应的打印模板;
[0014]当所述缓存中不存在对应的打印模板时,基于所述打印模板名称从预设的服务器获取打印模板,并将所述打印模板存入所述缓存中;
[0015]当所述缓存中存在对应的打印模板时,从所述缓存中获取所述打印模板。
[0016]可选地,所述基于所述打印模板名称,查询预设的缓存中是否存在对应的打印模板,包括:
[0017]读取Java报表引擎的工具jar包中的映射文件,其中所述映射文件包含所述打印模板名称及模板路径;
[0018]根据所述打印模板名称及所述模板路径,查询所述缓存中是否存在对应的打印模板对象。
[0019]可选地,所述基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表,包括:
[0020]解析所述打印报表数据,得到填充打印对象;
[0021]基于Java报表引擎将所述填充打印对象、所述静态图片名及所述字体文件名,填充到所述打印模板中,得到初始打印报表。
[0022]可选地,所述解析所述打印报表数据,得到填充打印对象,包括:
[0023]将所述打印报表数据转化为Document对象;
[0024]遍历所述Document对象对应的节点,获取所述节点的属性信息,得到填充打印对象。
[0025]可选地,所述解析所述打印报表数据,包括:
[0026]利用DOM4J工具解析所述数据文件,得到填充打印对象。
[0027]可选地,所述基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表,包括:
[0028]利用所述静态图片名及所述字体文件名,查询所述缓存中是否存在对应的静态图片及字体文件;
[0029]当所述缓存中不存在对应的静态图片及字体文件将所述静态图片时,将静态图片及所述字体文件压缩为静态压缩图片及字体压缩对象,并将所述静态压缩图片及所述字体压缩对象存入所述缓存中;
[0030]初始化所述初始打印报表;
[0031]利用所述静态图片名及所述字体文件名,从所述缓存中获取所述静态压缩图片及所述字体压缩对象;
[0032]利用所述字体压缩对象调整初始化后的所述初始打印报表中的字体,将所述静态压缩图片填充到初始化后的所述初始打印报表中,得到打印报表。
[0033]为了解决上述问题,本专利技术还提供一种打印报表生成装置,所述装置包括:
[0034]参数接收模块,用于接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称;
[0035]打印报表数据存储模块,用于读取所述打印报表数据,并将所述打印报表数据存到预设的缓存中;
[0036]打印参数设置模块,用于设置打印相关参数;
[0037]初始打印报表生成模块,用于根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表;
[0038]打印报表更新模块,用于基于所述静态图片名及所述字体文件名,从所述缓存中
获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表。
[0039]为了解决上述问题,本专利技术还提供一种电子设备,所述电子设备包括:
[0040]至少一个处理器;以及,
[0041]与所述至少一个处理器通信连接的存储器;其中,
[0042]所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述所述的打印报表生成方法。
[0043]为了解决上述问题,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的打印报表生成方法。
[0044]本专利技术实施例通过接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称,利用报表的共性设置打印模板,减少开发的工作量,提升打印报表生成效率;将所述打印报表数据加载到预设的缓存,根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,将所述打印模板等静态资源存到缓存,避免中反复从服务器中获取,减少CPU的负荷;根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表,在填充时线程引用静态图片名及所述字体本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种打印报表生成方法,其特征在于,所述方法包括:接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称;读取所述打印报表数据,并将所述打印报表数据存到预设的缓存中;设置打印相关参数;根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表;基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表。2.如权利要求1所述的打印报表生成方法,其特征在于,所述根据所述打印模板名称加载打印模板,包括:基于所述打印模板名称,查询预设的缓存中是否存在对应的打印模板;当所述缓存中不存在对应的打印模板时,基于所述打印模板名称从预设的服务器获取打印模板,并将所述打印模板存入所述缓存中;当所述缓存中存在对应的打印模板时,从所述缓存中获取所述打印模板。3.如权利要求2所述的打印报表生成方法,其特征在于,所述基于所述打印模板名称,查询预设的缓存中是否存在对应的打印模板,包括:读取Java报表引擎的工具jar包中的映射文件,其中所述映射文件包含所述打印模板名称及模板路径;根据所述打印模板名称及所述模板路径,查询所述缓存中是否存在对应的打印模板对象。4.如权利要求1所述的打印报表生成方法,其特征在于,所述基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表,包括:解析所述打印报表数据,得到填充打印对象;基于Java报表引擎将所述填充打印对象、所述静态图片名及所述字体文件名,填充到所述打印模板中,得到初始打印报表。5.如权利要求4所述的打印报表生成方法,其特征在于,所述解析所述打印报表数据,得到填充打印对象,包括:将所述打印报表数据转化为Document对象;遍历所述Document对象对应的节点,获取所述节点的属性信息,得到填充打印对象。6.如权利要求4所述的打印报表生成方法,其特征在于,所述解析所述打印报表数据,包括:利用DOM4J工具解析所述数据文件,...

【专利技术属性】
技术研发人员:高福东
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:

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

1