繁体   English   中英

Jasper Print 创建速度很慢

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM