将jasper报告保存为服务器上的pdf

时间:2014-10-18 19:49:31

标签: java servlets jasper-reports

我有一个使用jasper报告来创建pdf的servlet。此pdf使用JasperExportManager.exportReportToPdfStream()方法显示在Web浏览器中。这很好用。但是,我想要的是将文件保存在驻留在服务器上的文件夹中。我尝试使用以下代码执行此操作:

String outputFile = getServletContext().getRealPath("/theFolder");
JasperExportManager.exportReportToPdfFile(jasperPrint, outputFile + "/thePDF.pdf");

此代码不会产生任何错误并运行完成,但我无法在服务器上的任何位置找到该文件。我究竟做错了什么?感谢。

3 个答案:

答案 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