Jasperreports+ireport实现pdf报表功能

一、概述        

前段时间由于工作需要,搭建了一个基于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啦!!!!!!!

二维码相关的这里就先不讲了,后续再补,新人第一次发文章,如有不到位的地方,请各位大佬多包涵,多指点,谢谢

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值