【发布时间】:2017-03-31 02:35:13
【问题描述】:
我有一个网络应用程序。我使用 Spring Boot 1.3.3、AngularJS 和 Jasper 5.6.0。当我尝试下载 jasper 报告时,我得到空白的 PDF 页面。我的代码是:
String jasperAdi = "yillikPlan.jasper";
StringBuffer pathMain = new StringBuffer();
pathMain.append(this.getClass().getResource("/static/jasper").getPath());
String jasperFileName = pathMain.toString() + File.separator + jasperAdi;
File jasperFile = new File(jasperFileName);
JasperReport report = (JasperReport) JRLoader.loadObject(jasperFile);
JasperPrint jasperPrint = JasperFillManager.fillReport(report, param, new JRBeanCollectionDataSource(ckModelList));
if (jasperPrint != null) {
byte[] pdfReport = JasperExportManager.exportReportToPdf(jasperPrint);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/pdf"));
headers.setContentDispositionFormData("yillikPlan.pdf", "yillikPlan.pdf");
ResponseEntity<byte[]> respon = new ResponseEntity<byte[]>(pdfReport, headers, HttpStatus.OK);
return respon;
}
我的 jasper 文件位置是 /static/jasper。 ckModelList 是一个 java.util.List。 param 是我推送报告参数的 Hashmap。
我如何解决这个问题。
【问题讨论】:
-
你尝试调试了吗?数据源好吗?
-
是的,我尝试调试。我的数据源没问题。 @AlexK
-
我面临同样的问题。你解决了吗?
-
@tranceholic 不,我没有解决这个问题。
标签: java spring spring-boot jasper-reports