【问题标题】:Download option for pdf generated by Jasper reports in browsers not working浏览器中 Jasper 报告生成的 pdf 的下载选项不起作用
【发布时间】:2017-02-18 11:00:10
【问题描述】:

我正在尝试使用 jasper 报告生成 pdf。它的生成很好并直接存储在指定的路径中。但我需要的是,它必须在直接下载之前显示打开或保存选项。我正在使用 struts 1.x

这是我在方法中编写的代码

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

【问题讨论】:

    标签: java jasper-reports export-to-pdf


    【解决方案1】:

    当响应内容类型为application/x-download 时,浏览器会提示保存或打开文件。例如:

    //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
    

    【讨论】:

    • 让我检查一下并回复您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多