【发布时间】:2016-09-08 09:53:15
【问题描述】:
我使用具有以下配置的 jasper 报告版本 6.2.1:
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
JREmptyDataSource jasper = new JREmptyDataSource();
JasperPrint jasperPrint = jasperFillManager.fillReport(this.getClass().getClassLoader().getResource("/reports/tn2.jasper").getPath(), null, jasper);
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment" + "; filename=hehe.pdf");
ByteArrayOutputStream finalReport = new ByteArrayOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint,finalReport);
PrintWriter ouputStream = response.getWriter();
ouputStream.write(new String(finalReport.toByteArray()));
ouputStream.flush();
FacesContext.getCurrentInstance().responseComplete();
我是通过我的 JSF 2.x 支持 bean 来实现的。
但是当我尝试导出到流时,我总是得到一个空白页。但如果我这样做:
JasperExportManager.exportReportToPdfFile(jasperPrint,
"d://hehe.pdf");
它工作正常,我在生成的文件中看到了内容。如何强制它与流一起工作?我试图以不同的配置关闭/刷新流,使用 ARM 等。到目前为止没有运气
【问题讨论】:
标签: java jsf-2 jasper-reports