我有一个使用jasper报告来创建pdf的servlet。此pdf使用JasperExportManager.exportReportToPdfStream()方法显示在Web浏览器中。这很好用。但是,我想要的是将文件保存在驻留在服务器上的文件夹中。我尝试使用以下代码执行此操作:
String outputFile = getServletContext().getRealPath("/theFolder");
JasperExportManager.exportReportToPdfFile(jasperPrint, outputFile + "/thePDF.pdf");
此代码不会产生任何错误并运行完成,但我无法在服务器上的任何位置找到该文件。我究竟做错了什么?感谢。
答案 0 :(得分:3)
如果您的jasper调试日志配置得很好。在输出中,您将看到生成报告的路径。
或者您可以使用我的代码
String path=System.getProperty("user.dir");
JasperExportManager.exportReportToPdfFile(this.jp, path + "/reports/Report.pdf");
这会将文件相对于文件夹的路径保存在您想要的位置。如有必要,您还可以提供绝对路径。
同时检查项目的目标文件夹中是否存在报告。
答案 1 :(得分:0)
Try this
JRExporter exporter = new JRPdfExporter();
/*
* Saves the PDF file generated inside
* ....../build/web/WEB-INF/resources/invoice/filename.pdf
*/
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, outputFile);
exporter.exportReport();
答案 2 :(得分:0)
我有相同的代码,PDF保存在: C:\ Users \ weblogic \ AppData \ Roaming \ JDeveloper \ system11.1.1.3.37.56.60 \ o.j2ee \ drs \ YOUR PROJECT \ ViewControllerWebApp.war \ YOUR FOLDER