JasperReports下载和使用教程(附压缩包,非常详细)
JasperReports 是一套“把数据变成漂亮报表”的开源 Java 引擎,名字来源于一种可以呈现纹理的宝石。
JasperReports 自己不保存数据,也不负责录入,而是像一位“排版机器人”,你告诉它数据源在哪、想展示什么格式,它就能把结果套进提前画好的模板,最终输出 PDF、Excel、Word、HTML、PowerPoint 甚至纯文本。
对刚接触报表的新手而言,可以把 JasperReports 理解成“程序里的 Word 邮件合并”,先画好表格、放上 Logo,再把数据库字段拖进去,一键就能生成 1 万页带目录、页码、图表的正式报告,而且字体、颜色、分页、条形码、子表、交叉表都能精确控制,不会出现“复制粘贴到手酸”的惨剧。
JasperReports 的应用场景覆盖财务、电信、制造、医疗、电商、政府等各行各业:
JasperReports 完全由 Java 写成,可以用于在各种 Java 应用程序,包括 J2EE,Web 应用程序中生成动态内容。只需要将 JasperReports 引入工程中即可完成PDF报表的编译、显示、输出等工作。
Jaspersoft Studio 是 JasperReports 库的开源报表设计工具,使用该软件可以方便地对报表进行可视化的设计,设计结果为格式 .jrxml 的 XML 文件,并且可以把 .jrxml 文件编译成 .jasper 格式文件方便 JasperReports 报表引擎解析、显示。
Jaspersoft Studio 的安装过程非常简单,全程“傻瓜式”操作,一直 Next(保持默认设置)就可以安装成功,这里不再演示。
实现步骤如下:
1) 创建新模板,删除不需要的 Band:
2) 画边框和线:
3) 添加几个静态的文本:
4) 添加变量:
5) 在右下角修改变量名称:
6) 使用变量:
7) 实现效果如下图所示:
8) 环境准备,先引入依赖:
9) 准备中文字体资源文件。jasperReports 本身对中文的支持不够好,所以如果涉及到中文,需要自己准备中文的资源,现在以“华文宋体为例”,ttf 字体文件位置:C:\WINDOWS\Fonts。
fonts.xml:
jasperreports_extension.properties:
10) 测试效果如下图所示:
JasperReports 自己不保存数据,也不负责录入,而是像一位“排版机器人”,你告诉它数据源在哪、想展示什么格式,它就能把结果套进提前画好的模板,最终输出 PDF、Excel、Word、HTML、PowerPoint 甚至纯文本。
对刚接触报表的新手而言,可以把 JasperReports 理解成“程序里的 Word 邮件合并”,先画好表格、放上 Logo,再把数据库字段拖进去,一键就能生成 1 万页带目录、页码、图表的正式报告,而且字体、颜色、分页、条形码、子表、交叉表都能精确控制,不会出现“复制粘贴到手酸”的惨剧。
JasperReports 的应用场景覆盖财务、电信、制造、医疗、电商、政府等各行各业:
- 银行每天凌晨把百万条交易记录灌进 JasperReport,生成 PDF 对账单,再通过邮件合并发送给企业客户;
- 医院 HIS 系统把检验结果自动套进模板,打印出带二维码的英文报告,方便外籍患者手机扫码;
- 电商平台把订单、发货、退货数据聚合成交叉表,运营经理按“省份×品类”透视销量;
- 制造企业在 MES 里调用 JasperReport,实时生成随货单、质保书、RoHS 证明,随货同行。由于 LGPL 允许商业链接,软件公司可以把引擎嵌入自家 ERP 再销售,而无需开放 ERP 源码,从而节省巨额授权成本。
JasperReports 完全由 Java 写成,可以用于在各种 Java 应用程序,包括 J2EE,Web 应用程序中生成动态内容。只需要将 JasperReports 引入工程中即可完成PDF报表的编译、显示、输出等工作。
下载JasperReport
这里为大家提供了 JasperReports 最新版的安装包:除了 JasperReport 的安装包外,还提供了 Jaspersoft Studio 的安装包。
Jaspersoft Studio 是 JasperReports 库的开源报表设计工具,使用该软件可以方便地对报表进行可视化的设计,设计结果为格式 .jrxml 的 XML 文件,并且可以把 .jrxml 文件编译成 .jasper 格式文件方便 JasperReports 报表引擎解析、显示。
Jaspersoft Studio 的安装过程非常简单,全程“傻瓜式”操作,一直 Next(保持默认设置)就可以安装成功,这里不再演示。
JasperReports入门案例
实现下图所示的目标:
实现步骤如下:
1) 创建新模板,删除不需要的 Band:

2) 画边框和线:

3) 添加几个静态的文本:

4) 添加变量:

5) 在右下角修改变量名称:

6) 使用变量:

7) 实现效果如下图所示:

<dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>6.16.0</version> <exclusions> <exclusion> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>2.1.7</version> </dependency>
9) 准备中文字体资源文件。jasperReports 本身对中文的支持不够好,所以如果涉及到中文,需要自己准备中文的资源,现在以“华文宋体为例”,ttf 字体文件位置:C:\WINDOWS\Fonts。
fonts.xml:
<?xml version="1.0" encoding="UTF-8"?> <fontFamilies> <fontFamily name="华文宋体"> <normal>stsong/stsong.TTF</normal> <bold>stsong/stsong.TTF</bold> <italic>stsong/stsong.TTF</italic> <boldItalic>stsong/stsong.TTF</boldItalic> <pdfEncoding>Identity-H</pdfEncoding> <pdfEmbedded>true</pdfEmbedded> <exportFonts> <export key="net.sf.jasperreports.html">'华文宋体', Arial, Helvetica, sans-serif</export> <export key="net.sf.jasperreports.xhtml">'华文宋体', Arial, Helvetica, sans-serif</export> </exportFonts> </fontFamily> </fontFamilies>
jasperreports_extension.properties:
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory net.sf.jasperreports.extension.simple.font.families.lobstertwo=stsong/fonts.xml

10) 测试效果如下图所示:
