Jaspersoft studio工具(报表生成工具)之 设置PDF 的开发
2021-01-22 20:13
标签:attach and file 显示 design info src Map集合 显示中文 JasperReport 导出 PDF 的设置 通过JasperReports生成PDF报表一共要经过三个阶段,我们称之为 JasperReport的生命周期,这三个阶段为: 设计(Design)阶段、定义模板 (用工具 Jaspersoft studio来定义模板) 执行(Execution)阶段,模板 + 数据(填充) 输出(Export)阶段,展示。 将模板和数据一起展示
jasper的PDF模板由Jaspersoft studio工具生成,但是得注意: 1.记得保存(ctrl+s)模板 2.修改模板字体和idea中支持的字体要吻合,这样才能显示中文 在idea中项目的resources目录下要导入配置,文件在:D:\Astudy\软件语言\Java\java就\项目一\13.saax-export_day13\03.资料和工具\03 中文字体 步骤 1.在工具里面生成PDF模板并且编译,把编译后的.jsaper文件拷贝进idea项目中 2.编写代码,实现数据填充 注意:数据填充 由三种方式 方式一,参数map填充 方式二,JDBC数据源填充 方式三,JavaBean数据源填充 Map 参数填充一般用在非表格(table)数据填充(关键是:只有一条数据) 数据源 参数填充一般用在表格(table)数据填充(关键是:n行数据) 数据源 填充数据分为:JDBC数据源填充数据(数据库连接)、JavaBean填充数据(list集合 对于JDBC数据源,是在做PDF模板的时候就链接了数据库获取数据,再在代码里通过数据源创建连接对象从而填充 对于JaveBean数据源(又称为List集合填充),只是在PDF模板中填充空的数据,真正的数据还是在代码中填充 其实在java代码中无非就是三步 1.读取模板文件(.jasper) InputStream inputStream = session.getServletContext().getResourceAsStream("/jasper/test04_list.jasper(webapp下面的文件地址)"); 2.把数据填充到模板 JasperPrint print = JasperFillManager.fillReport (inputStream, Map集合 , dataSource数据源); 填充就是在用数据源还是map集合的不同而分出的3中方法 如果是用了map集合,那数据源就得为空,JasperPrint print = JasperFillManager.fillReport (inputStream, Map集合 , new JREmptyDataSource()); 如果用了数据源,那map集合就得为空,JasperPrint print = JasperFillManager.fillReport (inputStream, new HashMap() , 数据源); 在区分,①用JDBC数据源,那就是JasperPrint print = JasperFillManager.fillReport(inputStream, new HashMap() ,dataSource.getConnection()); 记得在外面写上 @Autowired ②用JavaBean数据源,那就是 //从而得到数据源 JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(list); JasperPrint print = JasperFillManager.fillReport (inputStream, new HashMap() , dataSource); 3.pdf文件的显示或导出 ①在浏览器显示 /** * 参数一:封装好模板好数据的JasperPrint对象 * 参数二:输出的位置 */ JasperExportManager.exportReportToPdfStream( print, response.getOutputStream()); ②下载 * 参数:封装好模板好数据的JasperPrint对象 //设置下载框响应头 Jaspersoft studio工具(报表生成工具)之 设置PDF 的开发 标签:attach and file 显示 design info src Map集合 显示中文 原文地址:https://www.cnblogs.com/lanto/p/13282994.html
JasperReport生命周期(重点):
JasperReport执行流程(重点):
java整合jasper模板文件
/**
* 演示Map参数填充
* @param id
* @throws Exception
*/
@RequestMapping("/exportPdf")
public void exportPdf(String id) throws Exception {
//1.读取模板文件(.jasper)
InputStream inputStream = session.getServletContext().getResourceAsStream("/jasper/test02_map.jasper");
//2.把数据填充到模板
/**
* 参数一:需要填充的模板文件输入流
* 参数二:Map参数
* 参数三:Jasper的数据源
*/
//进行Map参数填充
HashMap map = new HashMap();
//模板的参数名称和Map的key一致的
map.put("userName","小苍");
map.put("email","xc@itcast.cn");
map.put("companyName","字节跑动");
map.put("deptName","视频组");
JasperPrint print = JasperFillManager.fillReport(inputStream, map , new JREmptyDataSource());
//3.导出PDF文件
/**
* 参数一:封装好模板数据的JasperPrint对象
* 参数二:输出的位置,response.getOutputStream() //输出在页面显示
*/
JasperExportManager.exportReportToPdfStream(print,response.getOutputStream());
}
@Autowired
private DataSource dataSource;
/**
* 演示JDBC数据源参数填充
* @param id
* @throws Exception
*/
@RequestMapping("/exportPdf")
public void exportPdf(String id) throws Exception {
//1.读取模板文件(.jasper)
InputStream inputStream = session.getServletContext().getResourceAsStream("/jasper/test03_jdbc.jasper");
//2.把数据填充到模板
JasperPrint print = JasperFillManager.fillReport(inputStream, new HashMap() ,dataSource.getConnection());
//3.导出PDF文件
/**
* 参数一:封装好模板好数据的JasperPrint对象
* 参数二:输出的位置
*/
JasperExportManager.exportReportToPdfStream(print,response.getOutputStream());
}
/**
* 演示List集合(JavaBean)数据源导出
* @param id
* @throws Exception
*/
@RequestMapping("/exportPdf")
public void exportPdf(String id) throws Exception {
//1.读取模板文件(.jasper)
InputStream inputStream = session.getServletContext().getResourceAsStream("/jasper/test04_list.jasper");
//2.把数据填充到模板
List list = new ArrayList();
//注意: 必须遵守的规则:List的JavaBean的每个属性名称 和 模板的Filed名称 一致
for(int i=0;i() ,dataSource);
//3.导出PDF文件
/**
* 参数一:封装好模板好数据的JasperPrint对象
* 参数二:输出的位置
*/
JasperExportManager.exportReportToPdfStream(print,response.getOutputStream());
}
private DataSource dataSource;
* 参数二:输出的位置
response.setHeader("Content-Disposition","attachment;filename=export.pdf"); /参数一是响应头,参数而,是附件和下载后的文件名
JasperExportManager.exportReportToPdfStream( print, response.getOutputStream()); //这一步同上
文章标题:Jaspersoft studio工具(报表生成工具)之 设置PDF 的开发
文章链接:http://soscw.com/essay/45577.html