JasperReport PDF导出空,RTF导出正常

时间:2013-03-27 19:57:06

标签: java pdf jasper-reports

使用Java API导出使用ireport designer 5.0.1创建的JasperReport时,报告始终为空。在报告中我设置了whenNoDataType =“AllSectionsNoDetail。同样使用新的JREmptyDataSource()也不起作用。

当我使用JRRtfExporter导出为RTF时,结果也很好。 ireport中的PDF预览也是正确的。

InputStream inputStream = this.getClass().getResourceAsStream("/test-report.jasper");
ByteArrayOutputStream out = new ByteArrayOutputStream();
JasperPrint jPrint = JasperFillManager.fillReport(inputStream, new HashMap<String, Object>(), new JRXmlDataSource(new ByteArrayInputStream("<root><name>John Doe</name</root>".getBytes("UTF-8")), "/root"));

JRPdfExporter reportExporter = new JRPdfExporter();//JRRtfExporter(); does works fine
reportExporter.setParameter(JRExporterParameter.JASPER_PRINT, jPrint);
reportExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out);
reportExporter.exportReport();
out.close();
reportBytes = out.toByteArray();

reportBytes保存到磁盘。

1 个答案:

答案 0 :(得分:0)

没关系。代码非常好。问题是我将暴露的响应保存为二进制Web服务附件。接下来,我将此输出复制到PDF文件。但是这样做会丢失一些二进制字符。

不幸的是,Adobe Reader并没有抱怨PDF格式不正确,只是显示一个空白的PDF。