您的位置:首页 > 编程语言 > ASP

JasperReports实现pdf报表导出小例子

2020-07-20 04:22 1496 查看

个人在使用 JasperReports的时候,尝试了两种填充数据的方式

一、使用Javabean的方式写入数据

1、创建maven工程,导入JasperReports的maven坐标
 

[code]<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.8.0</version>
</dependency>
<dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.12</version>
</dependency>

2、将提前准备好的jrxml文件复制到maven工程中(可以使用TIBCO Jaspersoft Studio-6.9.0来创造新模板)

3、编写单元测试,输出PDF报表

[code]String jrxmlPath = "G:\\IDEA_Projects\\Spring\\wang_springMyBatis_day02\\src\\main\\resources\\jrxml\\demo2.jrxml";
String jasperPath = "G:\\IDEA_Projects\\Spring\\wang_springMyBatis_day02\\src\\main\\resources\\jrxml\\demo2.jasper";
JasperCompileManager.compileReportToFile(jrxmlPath,jasperPath);
Map<String, Object> map = new HashMap<>();
map.put("reportDate","2018-10-11");
map.put("company","ceshi");
List<Map> list = new ArrayList();
Map map1 = new HashMap();
map1.put("name","xiaoming");
map1.put("address","beijing");
map1.put("email","xiaoming@163.com");
Map map2 = new HashMap();
map2.put("name","xiaoli");
map2.put("address","nanjing");
map2.put("email","xiaoli@163.con");

list.add(map1);
list.add(map2);

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperPath, map, new JRBeanCollectionDataSource(list));
String pdfPath = "C:\\Users\\wang\\Desktop\\test.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint,pdfPath);

二、使用数据源的方式写入数据

1、创建maven工程,导入JasperReports的maven坐标

[code]<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.8.0</version>
</dependency>
<dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.12</version>
</dependency>
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.47</version>
</dependency>

2、将提前准备好的jrxml文件复制到maven工程中(可以使用TIBCO Jaspersoft Studio-6.9.0来创造新模板)

3、编写单元测试,输出PDF报表

[code]Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/health","root","root");

String jrxmlPath = "G:\IDEA_Projects\Spring\wang_springMyBatis_day02\src\main\resources\jrxml\demo1.jrxml";
String jasperPath = "G:\IDEA_Projects\Spring\wang_springMyBatis_day02\src\main\resources\jrxml\demo1.jasper";

//模板编译,编译为后缀为jasper的二进制文件
JasperCompileManager.compileReportToFile(jrxmlPath,jasperPath);

//为模板文件准备数据,用于最终的PDF文件数据填充
Map map = new HashMap();
map.put("company","家里蹲");
//填充数据
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperPath,map,connection);

//输出文件
String pdfPath = "D:\\test.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint,pdfPath);

通过上面的操作步骤可以输出pdf文件,但是中文的地方无法正常显示。这是因为JasperReports默认情 况下对中文支持并不友好,需要我们自己进行修复。具体操作步骤如下:
1、在Jaspersoft Studio中打开demo1.jrxml文件,选中中文相关元素,统一将字体设置为“华文宋体”并 将修改后的demo1.jrxml重新复制到maven工程中
2、将下述链接的解决中文无法显示问题中的文件复制到maven工程的resources目录中

https://download.csdn.net/download/qq_41048852/12556139

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐