1.添加依赖
net.sf.jasperreports jasperreports 6.5.0 org.olap4j olap4j 1.2.0 com.lowagie itext 2.1.7
2.编辑jasper模板,拷贝webapp中
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.需要设置宋体,这里选择华文宋体,添加字体的配置文件