2017-02-18 22 views
0

jasperレポートを使用してpdfを生成しようとしています。その生成罰金と指定されたパスに直接格納します。しかし、私が必要としたのは、直接ダウンロードする前にオープンまたは保存オプションを表示する必要があるということです。イムは、Struts 1.xのブラウザでJasperレポートが生成したpdfのダウンロードオプション

を使用すると、ここで私は、応答コンテンツタイプがapplication/x-downloadとき

String reportsPath = "D:/JasperReports/"; 
String reportName = "StatisticsReport"; 
Map<String, Object> parameters = new HashMap<String, Object>(); 
parameters.put("statisticsData", map); 

// Load JRXML 

JasperDesign mainReportDesign = JRXmlLoader.load(reportsPath + reportName + ".jrxml"); 
// Compile to generate .Jasper file 
    JasperCompileManager.compileReportToFile(mainReportDesign, reportsPath + reportName + ".jasper"); 

    System.out.println(reportsPath + reportName); 
       // Generate Jasper print 
    JasperPrint jasperPrint = JasperFillManager.fillReport(reportsPath + reportName + ".jasper", parameters, 
          new JREmptyDataSource()); 

    String pdfFileName = "D:/JasperReports/StatisticsrReport.pdf"; 
       // Export PDF file 
    response.addHeader("Content-disposition", "attachment; filename=StatisticsrReport1.pdf"); 
       JasperExportManager.exportReportToPdfFile(jasperPrint,pdfFileName); 

答えて

0

ブラウザが保存したり、開いているファイルを促すメッセージが表示されます方法で書かれHVE私のコードです。例:

//String pdfFileName = "D:/JasperReports/StatisticsrReport.pdf"; 
response.setContentType("application/x-download"); 
response.addHeader("Content-disposition", "attachment; filename=StatisticsrReport1.pdf"); 
OutputStream out = response.getOutputStream(); 
JasperExportManager.exportReportToPdfStream(jasperPrint,out);//export PDF directly 
//return null ActionForward, no extra data is appended to output stream 
+0

私はあなたに確認してください。 –

関連する問題