如何在jasper报告中显示导出的xml?

时间:2016-01-11 10:09:35

标签: java xml jasper-reports

我们最近将jasper报告整合到我们的系统中。现在我们可以通过标准方式用jasper报告向用户运行报告和显示结果,运行并向用户显示结果。

但在某些情况下,我们需要将结果保存到对象存储,并在请求时将其显示为文档。据我所知JasperPrint是序列化对象。将报告结果保存为对象存储作为序列化对象不是一个好方法,因为我们经历了我们以前的报告工具。如果对象发生了更改,则序列化机制无法反序列化对象。

因此我们希望将jasper结果以xml格式保存到对象存储中,但我们找不到在JRViewer中显示导出的xml的方法。

有没有办法将导出的xml转换为可视化表单?

1 个答案:

答案 0 :(得分:1)

Jasper Report提供了两种方法来保存和加载填充的报告,JasperPrint(注意:将导出的内容排除为pdf,xls ecc等其他格式,因为加载和导出到其他格式非常困难)。

礼貌@Robert MugattarovWhat is the difference between JasperReport formats?

  

.jrprint 是序列化的JasperPrint对象,即实际报告   实例,即已填充数据的模板。这个文件可以   被反序列化回JasperPrint对象。

     

.jrpxml 是一个人   可读的JasperPrint对象的XML表示,即XML   已填充数据的模板版本。这个文件可以   unmarshalled回到JasperPrint对象。

由于您不希望有序列化对象,因此保留的解决方案是中的jrpxml格式。

保存并加载到jrpxml的示例。

//Save JasperPrint to jrpxml (xml format)
JRXmlExporter exporter = new JRXmlExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleWriterExporterOutput(new File("myJasperPrint.jrpxml")));
exporter.exportReport();

//Load jrpxml to JasperPrint object
JasperPrint print = JRPrintXmlLoader.load("myJasperPrint.jrpxml");

//To show it in JasperViewer
JRViewer jrv = new JRViewer(print);

如果您需要减小文件大小,我建议您压缩/解压缩jrpxml文件。

What is a good Java library to zip/unzip files?