簡體   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