[英]Jasper Print creation is very slow
我尝试使用 ResultSet 创建 Jasper Print 以使用打印构建 PDF 报告。 问题是,Jasper Print 的创建速度非常慢。 ResultSet 是一个包含大约 5000 行的表。 创建打印需要超过 2 分钟。
我发现了这个解决方案: JasperReports fillReport too slow and resource sumption
但这对我不起作用。 不同的是,我使用动态报告。
JasperPrint jasperPrint = DynamicJasperHelper.generateJasperPrint(dynamicReport, new ClassicLayoutManager(), resultSet);
编辑:关键部分在 JRVerticalFiller class 中的 fillReport 方法中。
if (this.next()) {
this.fillReportStart();
while(this.next()) {
this.fillReportContent();
}
this.fillReportEnd();
}
fillReportContent 方法被一次又一次地调用了将近两分钟。
我从未使用过 Jasper Print,但如果您的目标是创建一个包含所有 5000 个结果的 PDF 文件,为什么不创建一个包含所有结果的 html 文件,其中包含<table><tr><td>
元素和然后使用wkhtmltopdf 之类的工具将文件从 html 转换为 pdf?
这样,只需几秒钟。
您还可以为 pdf 文件的每一页指定 header 和页脚(您可以包含图像或所需的文本等)
注意:wkhtmltopdf 不是 java 库,它是在大多数操作系统上运行的可执行文件,但是您可以使用 java 的 ProcessBuilder 来执行它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.