2013-03-27 113 views
0

当导出使用Java API创建的使用ireport designer 5.0.1创建的JasperReport时,报告始终为空。在报告中,我已经在iREPORT分享到人人正确使用JRRtfExporter结果是蛮好的设置whenNoDataType =“AllSectionsNoDetail。同时使用新JREmptyDataSource()也不起作用。JasperReport PDF导出空,RTF导出正常

还当我导出为RTF。另外,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被保存到磁盘。

回答

0

没关系。该代码是完全正常的。问题是,我救暴露的响应作为二进制webservice的附件。接下来我复制此输出为PDF文件。然而这样做的一些二进制字符丢失了。

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