使用 Java API 导出使用 ireport Designer 5.0.1 创建的 JasperReport 时,报表始终为空。在我设置 whenNoDataType="AllSectionsNoDetail. 的报告中。也使用 new 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 保存到磁盘。