2 回答

TA貢獻1797條經驗 獲得超6個贊
我用這段代碼解決了這個問題......
try {
File file = new File(exportPdfPath);
if (!file.exists()) {
LOGGER.info("creating folder");
file.mkdir();
file.setWritable(true);
}
JasperPrint something = JasperFillManager.fillReport(sourceFileName, parameters, new JRBeanCollectionDataSource(lstDataSource));
OutputStream output = new FileOutputStream(new File(exportPdfPath+"/test.pdf"));
JasperExportManager.exportReportToPdfStream(something, output);
output.close();
}

TA貢獻2037條經驗 獲得超6個贊
JasperFillManager.fillReportToFile不會生成 PDF,而是生成序列化的填充報表對象。由于某種原因,填充的報告引用了一個DefaultJasperReportsContext不可序列化的實例。這不應該發生,但要了解它為什么會發生,我們需要有關此案的更多細節。
但是如果你想生成一個PDF,你不需要序列化填充的報告。您可以執行以下操作來直接生成 PDF:
JasperRunManager.runReportToPdfFile(sourceFileName, "C://sample_report.pdf",
parameters, new JRBeanCollectionDataSource(lstDataSource));
添加回答
舉報