2014-10-18 48 views
2

我有一個使用jasper報告創建pdf的servlet。該pdf使用JasperExportManager.exportReportToPdfStream()方法顯示在Web瀏覽器中。這工作正常。但是,我想要的是將文件保存在駐留在服務器上的文件夾中。我試圖用下面的代碼來做到這一點:在服務器上保存jasper報告爲pdf

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

此代碼不會產生任何錯誤,並運行到完成,但我不能在服務器上的任何地方找到該文件。我究竟做錯了什麼?謝謝。

回答

3

如果您的jasper調試日誌配置良好。在輸出中,您將看到報告生成的路徑。

或者你可以使用我的代碼

String path=System.getProperty("user.dir"); 
JasperExportManager.exportReportToPdfFile(this.jp, path + "/reports/Report.pdf"); 

這將節省您希望相對於文件夾的路徑文件。如有必要,您也可以提供絕對路徑。

另請檢查報告是否存在於項目的目標文件夾中。

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(); 
0

我有相同的代碼,PDF保存在: C:\ Users \ weblogic \ AppData \ Roaming \ JDeveloper \ system11.1.1.3.37.56.60 \ o.j2ee \ drs \ YOUR PROJECT \ ViewControllerWebApp。戰爭\ Your FOLDER