天天看点

JasperReport一般用法整理

1.添加依赖

net.sf.jasperreports jasperreports 6.5.0 org.olap4j olap4j 1.2.0 com.lowagie itext 2.1.7

2.编辑jasper模板,拷贝webapp中

JasperReport一般用法整理
JasperReport一般用法整理

3.编写控制器

@RequestMapping("/exportPdf")

@ResponseBody

public void exportPdf(String id) {

//获取pdf模板输入流

InputStream in =

session.getServletContext().getResourceAsStream("/pdf/export.jasper");

//根据id查找报运单

Export export = exportService.findById(id);

//封装jasper报运单参数

Map<String, Object> map = BeanMapUtils.beanToMap(export);

//根据报运单id查询商品

ExportProductExample epExample = new ExportProductExample();

epExample.createCriteria()

.andExportIdEqualTo(id)

.andCompanyIdEqualTo(getLoginCompanyId());

List list = exportProductService.findAll(epExample);

//设置工厂名字

if (list != null && list.size() > 0) {

for (ExportProduct exportProduct : list) {

Factory factory = factoryService.findById(exportProduct.getFactoryId());

exportProduct.setFactoryName(factory.getFactoryName());

}

}

//封装数据源

JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(list);

try {

//填充jasper数据

JasperPrint jasperPrint = JasperFillManager.fillReport(in, map, dataSource);

//输出pdf

OutputStream out = response.getOutputStream();

//设置响应头

response.setHeader(“content-disposition”,“attachment;filename=export.pdf”);

response.setContentType(“application/pdf;charset=utf-8”);

JasperExportManager.exportReportToPdfStream(jasperPrint, out);

} catch (Exception e) {

e.printStackTrace();

}

try {

in.close();

} catch (IOException e) {

e.printStackTrace();

}

}

4.需要设置宋体,这里选择华文宋体,添加字体的配置文件

JasperReport一般用法整理