将.jrxml文件转换为.pdf文件

5
我在我的Web应用程序上运行了几次负载测试。问题是负载测试应用程序的结果以.jrxml格式呈现。结果包含图表、图形和某些参数。我知道这是jasperreport格式。所以,如果我将.jrxml文件转换为.pdf文件,我能看到所有的图表、图形和值吗?
我假设无论.jrxml内容中是否涉及图表或图形,生成的pdf都将包含适当的值,因为模板是根据图表API准备的。
我可以在不指定任何数据源连接的情况下生成jasper报告吗?我不需要数据源连接,因为我的.jrxml文件不包含数据源属性... 如果可以,我该如何实现它?请给予建议。
4个回答

9
如果您没有任何数据源,您可以尝试这个。
jasperReport = JasperCompileManager.compileReport(sourceFileName);
jasperPrint = JasperFillManager.fillReport(jasperReport,jasperParameter,new  JREmptyDataSource()); 
JasperExportManager.exportReportToPdfFile(jasperPrint, "D://Test.pdf");

即使您没有任何数据源,而是一个静态数据报告,也需要提供JREmptyDataSource
更多解释请查看答案。

即使使用最简单的Jasperreport jrxml仍然会产生空白PDF


1
先生,如果我的数据源是XML怎么办?请帮忙。 - Sanjay Sahani

0

.jrxml 是 Jasper Designer 的输出。当您编译它时,会得到它的解析形式 .jasper。之后,您可以使用数据、参数、变量填充此对象,并获得 .print 对象。最后,您可以将此打印对象导出为 Jasper 报表支持的任何格式,例如 PDF、CVS、HTML、Excel 等。


我已经知道这些细节了。可能的问题是,如果没有数据源,我能否生成Jasper报告...我不需要数据源,因为我的.jrxml文件中不包含任何数据源...这个评论有点偏离我所问的问题,我真的很抱歉。 - AngelsandDemons

0

如果您所说的“数据源连接”是指基于JDBC的数据源,那么是的,您可以在不需要它的情况下执行报告。

还有其他数据源实现,实现了net.sf.jasperreports.engine.JRDataSource(例如JRCsvDataSource),比访问数据库更轻量级-适用于测试。

但是对于单元测试,我最终创建了一个模拟实现 JRDataSource,它实现了next()getFieldValue()并从Map对象的集合中读取(这可以改为从文件中读取等)。 对我来说,这是最简单和最快速的测试方法。

您要进行负载测试的部分是哪一部分? 通常值得重点测试的部分是:

  • Jasper报告填充(执行查询,读取结果并填充JasperPrint对象)

  • Jasper导出(生成报告输出格式-HTML,PDF,XLS等)


0
如果您没有使用任何数据源,则必须从数据源中选择“Empty datasource”或“Sample datasource”(如果正在运行示例报告),但是我认为,如果您正在为项目创建特定报告,则必须选择数据源。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接