- 常见的PDF报表生成方式
1.1 iText
iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText 不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便, 下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类 库了。
2.1 JasperReports快速体验
本小节我们先通过一个快速体验来感受一下JasperReports的开发过程。
第一步:创建maven工程,导入JasperReports的maven坐标
第二步:将提前准备好的jrxml文件复制到maven工程中(后面会详细讲解如何创建jrxml文件)
第三步:编写单元测试,输出PDF报表
@Test
public void test1() throws Exception{
String jrxmlPath =
“D:\itcastProject\health_parent\jasperReportsDemo\src\main\resources\demo.jrxml”;
String jasperPath =
“D:\itcastProject\health_parent\jasperReportsDemo\src\main\resources\demo.jasper”;
//编译模板
JasperCompileManager.compileReportToFile(jrxmlPath,jasperPath);
//构造数据
Map paramters = new HashMap();
paramters.put("reportDate","2019-10-10");
paramters.put("company","itcast");
List<Map> list = new ArrayList();
Map map1 = new HashMap();
map1.put("name","xiaoming");
map1.put("address","beijing");
map1.put("email","xiaoming@itcast.cn");
Map map2 = new HashMap();
map2.put("name","xiaoli");
map2.put("address","nanjing");
map2.put("email","xiaoli@itcast.cn");
list.add(map1);
list.add(map2);
//填充数据
JasperPrint jasperPrint =
JasperFillManager.fillReport(jasperPath,
paramters,
new JRBeanCollectionDataSource(list));
//输出文件
String pdfPath = "D:\\test.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint,pdfPath);
}
2.2 JasperReports原理
JRXML:报表填充模板,本质是一个xml文件
Jasper:由JRXML模板编译成的二进制文件,用于代码填充数据
Jrprint:当用数据填充完Jasper后生成的对象,用于输出报表
2.3 开发流程
使用JasperReports导出pdf报表,开发流程如下:
- 制作报表模板
- 模板编译
- 构造数据
- 填充数据
- 输出文件
3.模板设计器Jaspersoft Studio
1,jasperreports入门案例
第一步:导入jar包的坐标
<dependency>
<groupId>net.<