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));
添加回答
举报
