CN114490776A - 打印报表生成方法、装置、设备及存储介质 - Google Patents
打印报表生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114490776A CN114490776A CN202210134374.7A CN202210134374A CN114490776A CN 114490776 A CN114490776 A CN 114490776A CN 202210134374 A CN202210134374 A CN 202210134374A CN 114490776 A CN114490776 A CN 114490776A
- Authority
- CN
- China
- Prior art keywords
- printing
- report
- name
- template
- static
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/183—Tabulation, i.e. one-dimensional positioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Record Information Processing For Printing (AREA)
Abstract
本发明涉及人工智能技术,揭露了一种打印报表生成方法,包括:接收打印请求参数,其中打印请求参数包含打印报表数据及预设的打印模板名称;将打印报表数据加载到预设的缓存中;根据打印模板名称加载打印模板,将打印模板存入缓存中,将打印报表数据、静态图片名及字体文件名填充到打印模板中,得到初始打印模板;获取对应的静态压缩图片及字体压缩对象,并利用静态压缩图片及字体压缩对象更新初始打印报表,得到打印报表。此外,本发明还涉及区块链技术,打印模板可存储于区块链的节点。本发明还提出一种打印报表生成装置、电子设备以及存储介质。本发明可以提高打印报表生成效率。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种打印报表生成方法、装置、电子设备及计算机可读存储介质。
背景技术
报表通常使用表格来展示动态数据,是数据的最直观表达,各行各业均使用报表记录数据,不同行业不同部门对于报表需要展示的维度不同,例如生产行业需要生产报表、财务人员需要财务报表、市场人员需要市场营销报表、业务人员需要行业数据表。
当前基于开源框架JasperReport的打印报表生成方法存在如下问题:1、图片和模板文件等静态资源频繁加载,消耗了大量CPU;2、相同的字体和图片重复压缩,消耗了大量CPU;3、数据文件xml解析采用DOM方式,消耗了大量内存;4、线程池(ThreadPoolExecutor)中引用大对象,导致存放方法名(finalizer)对象的队列,占用了大量内存。
综上所述,当前打印报表生成的效率有待提升。
发明内容
本发明提供一种打印报表生成方法、装置及计算机可读存储介质,其主要目的在于解决打印报表生成效率低的问题。
为实现上述目的,本发明提供的一种打印报表生成方法,包括:
接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称;
读取所述打印报表数据,并将所述打印报表数据存到预设的缓存中;
设置打印相关参数;
根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表;
基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表。
可选地,所述根据所述打印模板名称加载打印模板,包括:
基于所述打印模板名称,查询预设的缓存中是否存在对应的打印模板;
当所述缓存中不存在对应的打印模板时,基于所述打印模板名称从预设的服务器获取打印模板,并将所述打印模板存入所述缓存中;
当所述缓存中存在对应的打印模板时,从所述缓存中获取所述打印模板。
可选地,所述基于所述打印模板名称,查询预设的缓存中是否存在对应的打印模板,包括:
读取Java报表引擎的工具jar包中的映射文件,其中所述映射文件包含所述打印模板名称及模板路径;
根据所述打印模板名称及所述模板路径,查询所述缓存中是否存在对应的打印模板对象。
可选地,所述基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表,包括:
解析所述打印报表数据,得到填充打印对象;
基于Java报表引擎将所述填充打印对象、所述静态图片名及所述字体文件名,填充到所述打印模板中,得到初始打印报表。
可选地,所述解析所述打印报表数据,得到填充打印对象,包括:
将所述打印报表数据转化为Document对象;
遍历所述Document对象对应的节点,获取所述节点的属性信息,得到填充打印对象。
可选地,所述解析所述打印报表数据,包括:
利用DOM4J工具解析所述数据文件,得到填充打印对象。
可选地,所述基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表,包括:
利用所述静态图片名及所述字体文件名,查询所述缓存中是否存在对应的静态图片及字体文件;
当所述缓存中不存在对应的静态图片及字体文件将所述静态图片时,将静态图片及所述字体文件压缩为静态压缩图片及字体压缩对象,并将所述静态压缩图片及所述字体压缩对象存入所述缓存中;
初始化所述初始打印报表;
利用所述静态图片名及所述字体文件名,从所述缓存中获取所述静态压缩图片及所述字体压缩对象;
利用所述字体压缩对象调整初始化后的所述初始打印报表中的字体,将所述静态压缩图片填充到初始化后的所述初始打印报表中,得到打印报表。
为了解决上述问题,本发明还提供一种打印报表生成装置,所述装置包括:
参数接收模块,用于接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称;
打印报表数据存储模块,用于读取所述打印报表数据,并将所述打印报表数据存到预设的缓存中;
打印参数设置模块,用于设置打印相关参数;
初始打印报表生成模块,用于根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表;
打印报表更新模块,用于基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述所述的打印报表生成方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的打印报表生成方法。
本发明实施例通过接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称,利用报表的共性设置打印模板,减少开发的工作量,提升打印报表生成效率;将所述打印报表数据加载到预设的缓存,根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,将所述打印模板等静态资源存到缓存,避免中反复从服务器中获取,减少CPU的负荷;根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表,在填充时线程引用静态图片名及所述字体文件名,可以更快的回收占用内存比较大的对象;并利用所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表,将所述静态图片名及所述字体文件等静态文件进行压缩,减少内存占用,提升打印报表生成效率。因此本发明提出的打印报表生成方法、装置、电子设备及计算机可读存储介质,可以解决打印报表生成效率低的问题。
附图说明
图1为本发明一实施例提供的打印报表生成方法的流程示意图;
图2为图1所示打印报表生成方法中其中一个步骤的详细实施流程示意图;
图3为图1所示打印报表生成方法中其中另一个步骤的详细实施流程示意图;
图4为本发明一实施例提供的打印报表生成装置的功能模块图;
图5为本发明一实施例提供的实现所述打印报表生成方法的电子设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请实施例提供一种打印报表生成方法。所述打印报表生成方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述打印报表生成方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
参照图1所示,为本发明一实施例提供的打印报表生成方法的流程示意图。在本实施例中,所述打印报表生成方法包括:
S1、接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称。
本发明实施例中,利用基于Java报表引擎生成所述打印报表。其中所述Java报表引擎为JasperReport,可以获取原始数据并将其转换为报告和可视化报表,用Java编写,支持PDF、Excel、HTML、XML等多种格式的报表文件。
本发明实施例中,所述打印请求参数可以是测试环境下的请求参数,可以是生产环境下的请求参数,也可以是业务环境下的请求参数。具体地,测试环境下,测试系统向所述Jasperreport发送打印报表打印请求参数,所述Jasperreport接收所述打印报表打印请求参数;生产环境下,生产系统向所述Jasperreport发送打印报表打印请求参数,所述Jasperreport接收所述打印报表打印请求参数;业务环境下,业务系统向Jasperreport发送打印报表打印请求参数,所述Jasperreport接收所述打印报表打印请求参数。
本发明实施例中,所述打印请求参数,包含但不限于打印报表数据、打印模板名称、打印请求单号。
本发明实施例中,所述打印报表数据在同一企业中某个环节或部门的格式往往是预先设定的,且不会轻易改变,可以根据待打印报表数据的预设的格式,将待生成的打印报表分为预设的多个报表区域,例如,标题区域、页眉区域、页脚区域、主体区域等,每个报表区域对应一个打印模板区域。
S2、读取所述打印报表数据,并将所述打印报表数据存到预设的缓存中。
本发明实施例中,所述打印报表数据可以为XML格式。其中,所述XML是一种用于标记电子文件使其具有结构性的标记语言。采用XML格式传输打印报表数据,避免了人工编码数据结构的业务逻辑,节省了成本。具体地,本发明实施例,可以将XML格式的打印报表数据结合打印模板生成符合各种业务需求的打印报表。
本发明实施,可以利用DOM4J读取所述打印报表数据。其中,所述DOM4J是一组XML文件的组件包,用于读写XML文件。
本发明实施例中,所述预设的缓存可以采用Caffeine,所述Caffeine是一种建立在java8基础上的缓存框架,基于内存的键值对(key-value)进行存储,实现缓存高命中率、内存低消耗。
S3、设置打印相关参数。
本发明实施例中,所述打印相关参数包括但不限于字体格式、日期格式、打印机。例如所述字体格式设置为宋体、小四号字体,所述日期格式为年-月-日XX:XX,例如:2021-12-02 14:00。
S4、根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表。
本发明实施例中,所述打印模板可以包含多个子模板,可以根据所述打印请求参数选择多个子模版进行排列组合,形成所述打印模板。
具体地,本发明实施例中,所述子模板可以通过Jaspersoft Studio构建,根据实际地需要构建相应的独立模板,或者将已经通过Jaspersoft Studio构建的报表模板拆分为多个独立模板并存入所述缓存中。其中,所述Jaspersoft Studio是一个设计报表模板的工具。
本发明实施例中,所述静态图片为所述打印模板中固定的图片信息,例如,公司logo,页眉、页脚等。
详细地,参阅图2所示,S4中所述根据所述打印模板名称加载打印模板,包括:
S41、基于所述打印模板名称,查询预设的缓存中是否存在对应的打印模板;
当所述缓存中不存在对应的打印模板时,则执行S42、基于所述打印模板名称从预设的服务器获取打印模板,并将所述打印模板存入所述缓存中;
当所述缓存中存在对应的打印模板时,则执行S43、从所述缓存中获取所述打印模板。
进一步地,所述基于所述打印模板名称,查询预设的缓存中是否存在对应的打印模板对象,包括:
读取Java报表引擎的工具jar包中的映射文件,其中所述映射文件包含所述打印模板名称及模板路径;
根据所述打印模板名称及所述模板路径,查询所述缓存中是否存在对应的打印模板。
本发明实施例中所述jar包为所述Jasperreport的执行文件,即所述Jasperreport运行时所依赖的jar文件,可以由JAVA虚拟机JVM直接执行,将包含所述打印模板的资源文件打包至所述jar包中,所述打印模板可以在不同环境中启动所述jar包时被加载,可以保证不同环境下加载出来的打印模板相同,保证所述打印模板的一致性,避免不同环境下加载出来的所述打印模板出现无法被读取的问题。
本发明实施例中,可以将所述打印模板名称作为key,所述模板路径作为value配置两者映射关系的映射文件,将所述打印模板存储到所述缓存中。
进一步地,S4中所述基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表,包括:
解析所述打印报表数据,得到填充打印对象;
基于Java报表引擎将所述填充打印对象、所述静态图片名及所述字体文件名,填充到所述打印模板中,得到初始打印报表。
本发明实施例利用DOM4J工具解析所述打印报表数据,得到填充打印对象。具体地,将所述打印报表数据转化为Document对象;遍历所述Document对象对应的节点,获取所述节点的属性信息,得到填充打印对象。
本发明实施例中,所述填充打印对象为具体需要打印的业务数据,包含报表主题,报表内容行及报表尾等字段,例如:所述报表主题为入库单明细报表,所述报表内容行包括客户、货名、车号、箱号、总计等,所述报表尾包括签名信息等。
本发明实施例将所述静态图片及所述字体文件进行压缩之后存入所述缓存,减少了缓存的存储压力;将所述打印模板存入所述缓存中,避免每次打印时去服务器获取,可以直接从本地缓存中获取节约了打印文档生成时间;DOM4J工具解析所述数据文件,减少内存的占用率;将所述静态图片名及所述字体文件名,填充到所述打印模板中,所述JasperReport对应的线程池(ThreadPoolExecutor)只用引用所述静态图片名及所述字体文件名,无需引用所述静态压缩图片及所述字体压缩对象,可以让java虚拟机可以更加快速地回收这个占用内存比较大的对象(JRFillContext),加快了内容释放效率,提升了内存的利用率。
S5、基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表。
详细地,参阅图3所示,所述S5包括:
S51、利用所述静态图片名及所述字体文件名,查询所述缓存中是否存在对应的静态图片及字体文件;
S52、当所述缓存中不存在对应的静态图片及字体文件将所述静态图片时,将静态图片及所述字体文件压缩为静态压缩图片及字体压缩对象,并将所述静态压缩图片及所述字体压缩对象存入所述缓存中;
S53、初始化所述初始打印报表;
S54、利用所述静态图片名及所述字体文件名,从所述缓存中获取所述静态压缩图片及所述字体压缩对象;
S55、利用所述字体压缩对象调整初始化后的所述初始打印报表中的字体,将所述静态压缩图片填充到初始化后的所述初始打印报表中,得到打印报表。
具体地,本发明实施例,可以将所述静态图片名作为key,所述静态压缩图片路径作为value配置两者映射关系的映射文件,将所述静态压缩图片存储到所述缓存中,并。可以将所述字体文件名作为key,所述字体压缩对象路径作为value配置两者映射关系的映射文件,将所述字体压缩对象存储到所述缓存中。
本发明其中一个实施例,所述利用所述静态图片名及所述字体文件名,获取对应的静态压缩图片及字体压缩对象,并利用所述静态压缩图片及所述字体压缩对象更新所述初始打印报表之后,还包括采用加密机方式对所述打印报表进行签名盖章,使得有权限的人员才能打印对应的打印报表。具体地,在使用加密机方式对所述打印报表进行签名盖章,报表格式满足支持批量打印。
本发明实施例,所述利用所述字体压缩对象调整初始化后的所述初始打印报表中的字体,将所述静态压缩图片填充到初始化后的所述初始打印报表中,得到打印报表之后,所述方法还包括,向所述打印相关参数中设定的所述打印机发送打印指令和所述打印报表;所述打印机完成打印之后,打印结果返回至浏览器,在所述浏览器根据返回的所述打印结果进行进一步的处理,例如跳出提示框提示打印状态等信息。
本发明实施例,直接从缓存获取静态压缩图片及所述字体压缩对象,提升了打印文件的生成效率。
本发明实施例通过接收打印报表数据及预设的打印模板名称,利用报表的共性设置打印模板,减少开发的工作量,提升打印报表生成效率;将所述打印报表数据加载到预设的缓存,根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,将所述打印模板等静态资源存到缓存,避免中反复从服务器中获取,减少CPU的负荷;根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表,在填充时线程引用静态图片名及所述字体文件名,可以更快的回收占用内存比较大的对象;并利用所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表,将所述静态图片名及所述字体文件等静态文件进行压缩,减少内存占用,提升打印报表生成效率。因此本发明提出的打印报表生成方法,可以解决打印报表生成效率低的问题。
如图4所示,是本发明一实施例提供的打印报表生成装置的功能模块图。
本发明所述打印报表生成装置100可以安装于电子设备中。根据实现的功能,所述打印报表生成装置100可以包括参数接收模块101、打印报表数据存储模块102、打印参数设置模块103、初始打印报表生成模块104及打印报表更新模块105。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
所述参数接收模块101,用于接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称;
所述打印报表数据存储模块102,用于读取所述打印报表数据,并将所述打印报表数据存到预设的缓存中;
所述打印参数设置模块103,用于设置打印相关参数;
所述初始打印报表生成模块104,用于根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表;
所述打印报表更新模块105,用于基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表。
详细地,本发明实施例中所述打印报表生成装置100中所述的各模块在使用时采用与上述图1至图3中所述的打印报表生成方法一样的技术手段,并能够产生相同的技术效果,这里不再赘述。
如图5所示,是本发明一实施例提供的实现打印报表生成方法的电子设备的结构示意图。
所述电子设备1可以包括处理器10、存储器11、通信总线12以及通信接口13,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如打印报表生成程序。
其中,所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(ControlUnit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行打印报表生成程序等),以及调用存储在所述存储器11内的数据,以执行电子设备的各种功能和处理数据。
所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备的应用软件及各类数据,例如打印报表生成程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述通信总线12可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
所述通信接口13用于上述电子设备与其他设备之间的通信,包括网络接口和用户接口。可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。所述用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
图5仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图5示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的打印报表生成程序是多个指令的组合,在所述处理器10中运行时,可以实现:
接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称;
读取所述打印报表数据,并将所述打印报表数据存到预设的缓存中;
设置打印相关参数;
根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表;
基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表。
具体地,所述处理器10对上述指令的具体实现方法可参考附图对应实施例中相关步骤的描述,在此不赘述。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称;
读取所述打印报表数据,并将所述打印报表数据存到预设的缓存中;
设置打印相关参数;
根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表;
基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种打印报表生成方法,其特征在于,所述方法包括:
接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称;
读取所述打印报表数据,并将所述打印报表数据存到预设的缓存中;
设置打印相关参数;
根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表;
基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表。
2.如权利要求1所述的打印报表生成方法,其特征在于,所述根据所述打印模板名称加载打印模板,包括:
基于所述打印模板名称,查询预设的缓存中是否存在对应的打印模板;
当所述缓存中不存在对应的打印模板时,基于所述打印模板名称从预设的服务器获取打印模板,并将所述打印模板存入所述缓存中;
当所述缓存中存在对应的打印模板时,从所述缓存中获取所述打印模板。
3.如权利要求2所述的打印报表生成方法,其特征在于,所述基于所述打印模板名称,查询预设的缓存中是否存在对应的打印模板,包括:
读取Java报表引擎的工具jar包中的映射文件,其中所述映射文件包含所述打印模板名称及模板路径;
根据所述打印模板名称及所述模板路径,查询所述缓存中是否存在对应的打印模板对象。
4.如权利要求1所述的打印报表生成方法,其特征在于,所述基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表,包括:
解析所述打印报表数据,得到填充打印对象;
基于Java报表引擎将所述填充打印对象、所述静态图片名及所述字体文件名,填充到所述打印模板中,得到初始打印报表。
5.如权利要求4所述的打印报表生成方法,其特征在于,所述解析所述打印报表数据,得到填充打印对象,包括:
将所述打印报表数据转化为Document对象;
遍历所述Document对象对应的节点,获取所述节点的属性信息,得到填充打印对象。
6.如权利要求4所述的打印报表生成方法,其特征在于,所述解析所述打印报表数据,包括:
利用DOM4J工具解析所述数据文件,得到填充打印对象。
7.如权利要求1所述的打印报表生成方法,其特征在于,所述基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表,包括:
利用所述静态图片名及所述字体文件名,查询所述缓存中是否存在对应的静态图片及字体文件;
当所述缓存中不存在对应的静态图片及字体文件将所述静态图片时,将静态图片及所述字体文件压缩为静态压缩图片及字体压缩对象,并将所述静态压缩图片及所述字体压缩对象存入所述缓存中;
初始化所述初始打印报表;
利用所述静态图片名及所述字体文件名,从所述缓存中获取所述静态压缩图片及所述字体压缩对象;
利用所述字体压缩对象调整初始化后的所述初始打印报表中的字体,将所述静态压缩图片填充到初始化后的所述初始打印报表中,得到打印报表。
8.一种打印报表生成装置,其特征在于,所述装置包括:
参数接收模块,用于接收打印请求参数,其中所述打印请求参数包含打印报表数据及预设的打印模板名称;
打印报表数据存储模块,用于读取所述打印报表数据,并将所述打印报表数据存到预设的缓存中;
打印参数设置模块,用于设置打印相关参数;
初始打印报表生成模块,用于根据所述打印模板名称加载打印模板,将所述打印模板存入所述缓存,根据所述打印相关参数及所述打印模板获取字体文件名及静态图片名,基于Java报表引擎将所述打印报表数据、所述静态图片名及所述字体文件名填充到所述打印模板中,得到初始打印报表;
打印报表更新模块,用于基于所述静态图片名及所述字体文件名,从所述缓存中获取对应的静态压缩图片及字体压缩对象,并根据所述静态压缩图片及所述字体压缩对象更新所述初始打印报表,得到打印报表。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任意一项所述的打印报表生成方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的打印报表生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210134374.7A CN114490776A (zh) | 2022-02-14 | 2022-02-14 | 打印报表生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210134374.7A CN114490776A (zh) | 2022-02-14 | 2022-02-14 | 打印报表生成方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490776A true CN114490776A (zh) | 2022-05-13 |
Family
ID=81480866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210134374.7A Pending CN114490776A (zh) | 2022-02-14 | 2022-02-14 | 打印报表生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490776A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115079966A (zh) * | 2022-08-22 | 2022-09-20 | 南京数睿数据科技有限公司 | 无代码的页面打印方法、装置、电子设备和可读介质 |
CN117077630A (zh) * | 2023-08-28 | 2023-11-17 | 国任财产保险股份有限公司 | 一种用于电子文件的打印方法及其系统 |
-
2022
- 2022-02-14 CN CN202210134374.7A patent/CN114490776A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115079966A (zh) * | 2022-08-22 | 2022-09-20 | 南京数睿数据科技有限公司 | 无代码的页面打印方法、装置、电子设备和可读介质 |
CN115079966B (zh) * | 2022-08-22 | 2022-12-02 | 南京数睿数据科技有限公司 | 无代码的页面打印方法、装置、电子设备和可读介质 |
CN117077630A (zh) * | 2023-08-28 | 2023-11-17 | 国任财产保险股份有限公司 | 一种用于电子文件的打印方法及其系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114490776A (zh) | 打印报表生成方法、装置、设备及存储介质 | |
CN106814982A (zh) | 标签打印处理装置、系统和方法 | |
CN112052370A (zh) | 报文生成方法、装置、电子设备及计算机可读存储介质 | |
CN112115145A (zh) | 数据采集方法、装置、电子设备及存储介质 | |
CN112085217A (zh) | 部署人工智能服务的方法、装置、设备及计算机介质 | |
CN112419136A (zh) | 图片水印添加方法、装置、电子设备及存储介质 | |
CN112506486A (zh) | 搜索系统建立方法、装置、电子设备及可读存储介质 | |
CN113704665A (zh) | 动态服务发布方法、装置、电子设备及存储介质 | |
CN113741909A (zh) | 微服务部署方法、装置、电子设备及存储介质 | |
CN113868528A (zh) | 资讯推荐方法、装置、电子设备及可读存储介质 | |
CN113468175A (zh) | 数据压缩方法、装置、电子设备及存储介质 | |
CN114489525A (zh) | 打印报表生成方法、装置、设备及存储介质 | |
CN112464619B (zh) | 大数据处理方法、装置、设备及计算机可读存储介质 | |
CN113360139A (zh) | 前端框架的集成方法、装置、电子设备及存储介质 | |
CN113051224A (zh) | 文件传输方法、装置、电子设备及计算机可读存储介质 | |
CN112541688A (zh) | 业务数据校验方法、装置、电子设备及计算机存储介质 | |
CN115982454A (zh) | 基于用户画像的问卷推送方法、装置、设备及存储介质 | |
CN114186540A (zh) | 邮件内容智能填充方法、装置、电子设备及存储介质 | |
CN115016754A (zh) | 设备间的页面同步显示方法、装置、电子设备及介质 | |
CN115174541A (zh) | H5资源加载方法、装置、电子设备及存储介质 | |
CN115048920A (zh) | 前端数据导出方法、装置、设备及存储介质 | |
CN113867718A (zh) | 图片生成方法、装置、计算机设备及可读存储介质 | |
CN102521327A (zh) | 电子表单的展示方法及系统 | |
CN113377717B (zh) | 单证文件生成方法、装置、电子设备及存储介质 | |
CN112667244A (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 |