问题是,当我使用Eclipse IDE完成生成pdf报告时,pdf报告将仅显示当前页码,但由于总页数超过100页而无法显示总页数(将显示少于100页)。在jaspersoft studio上预览显示。我使用表达式来显示总页面为$ V {PAGE_NUMBER},并将评估时间设置为“报告”。我使用表达式来显示当前页码为$ V {PAGE_NUMBER} +“ OF”,并将评估时间设置为“ Now”。我使用TIBCOJaspersoft®Studio 6.6.0。有谁能够帮助我。谢谢
//generate pdf report code
File reportFile = new File(jrxml_path + criteria.getReportCode() + ".jrxml");
FileInputStream inputStream = new FileInputStream(reportFile);
JasperPrint jasperPrint = JasperFillManager.fillReport(JasperCompileManager.compileReport(inputStream), params, connection);
//in pom.xml file
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.6.0</version>
</dependency>
答案 0 :(得分:0)
我找到了问题的原因,因为我在Java代码中使用了JRSwapFileVirtualizer。虚拟机会将碧玉打印成不同的文件,以避免内存不足异常,并将它们保存在硬盘驱动器上和/或压缩它,因此总页数无法计算,因为我将maxSize参数设置为100页。
Integer virtualPage = 100;
Integer virtualBlockSize = 2048;
File virtualizePath = new File(report_path + "virtual");
JRSwapFile swapFile = new JRSwapFile(virtualizePath.getAbsolutePath(), virtualBlockSize, 100);
virtualizer = new JRSwapFileVirtualizer(virtualPage, swapFile);
virtualizer.setReadOnly(true);
JRVirtualizationHelper.setThreadVirtualizer(virtualizer);
params.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
如果您想在JasperReports中阅读更多关于虚拟化器的信息,可以转到以下链接:virtualizers-jasperreports