一、概述
前段时间由于工作需要,搭建了一个基于Jasperreports和ireport的应用,用来对外提供报表PDF文件。由于本人也是第一次使用Jasperreports和ireport,遇到了很多坑,如有问题,请大家谅解,也欢迎大家一起讨论。
先说一说概念性的问题吧:
JasperReports是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者XML格式。该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。IReport是一个图形化的辅助工具,能弥补JasperReport的缺陷:JasperReport仅提供了可使用的类库,而未提供更好的开发工具。它们配合使用将会更大程度的提高效率。
IReport 5.6.0
二、IReport 5.6.0安装
本文采用的是Jasperreports6.17.0 + IReport 5.6.0 +j dk1.8 + springboot 2.6.4。
这里注意一下:现在IReport最新的版本就是5.6.0的版本,并且最高只支持到jdk1.7,大家现在的开发环境基本都是jdk1.8以上的,请自行再安装一个jdk1.7。
IReport 5.6.0下载地址:
官网:https://community.jaspersoft.com/project/ireport-designer/releases
或者:https://sourceforge.net/projects/ireport/ 如果下载太慢,换个节点试试。
下载后安装一路next,安装完成后,前往安装目录下的:etc/ireport.conf文件,配置关联自己的jdk1.7的路径:
完成后就可以打开IReport设计报表模板了。
三、设计报表模板
第一步:new一个Blank A4 空模板,选择存放目录
注:由于篇幅问题,Title、Page Header等区域请自行学习了解。
第二步:根据java服务需要传递的报表参数,在Report inspector - Parameters中新建参数dataList,选中dataList,在属性面板中设置class为List类型。
第三步:向模板中添加参数,如果要添加静态文本,就将Static Text拖拽到对应的区域位置,如:报表的标题,报表的一些属性名称,dataList的表头名称等。对于变量参数,就将Text Field拖拽到对应区域位置。如果有条形码或者二维码的需求,也可以将image拖拽到对应区域。
下面是我设计的模板:
好了,模板设计这部分可根据大家自身的实际需求进行设计,这里就不详细说明了。接下来讲讲如何于java项目集成,搭建一个项目通过获取的报表数据生成报表PDF。
四、项目搭建
1、JDK1.8 + Spring boot2.X 创建一个spring boot项目,需要引入的jar参考下面pom配置:
2、在工程中新建controller、service、model、util等相关包和相关类。
1)model中新建ReportParam请求参数类
2)controller:
3)service
4)service实现
5)Utll
6) application.yml
7)resources路径下新建一个templates文件夹,将之前IReport设计好的模板文件applyOrder03.jrxml放在templates中。
8)启动项目,使用Postman新建post请求测试:http://localhost:10010/report/applyReports/showPdf
注意在body中添加json参数,与之前设计的参数类ReportParam结构一致。
最后就能预览到我们生成的pdf啦!!!!!!!
二维码相关的这里就先不讲了,后续再补,新人第一次发文章,如有不到位的地方,请各位大佬多包涵,多指点,谢谢