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