pdf 下载对话框窗口未出现在浏览器中。 extjs 4 与 java

发布于 2024-12-28 08:10:33 字数 1535 浏览 2 评论 0原文

我能够使用 JasperReports 和 Java 生成 pdf 形式的报告。

生成的报告无法下载到客户端。 我使用下面的代码生成 pdf 文件:

public void getTaskreportPDF(Session openSession,HttpServletRequest request,HttpServletResponse response) {
        try {   
Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/contact","root","root");
Map params = getParameters(openSession);
Date date = new Date();
String reportfileName = "report"+date.getDate()+"-"+date.getMonth()+"-"+date.getYear()+"-"+date.getTime()+".pdf";
JasperDesign jasperDesign = JRXmlLoader.load(this.getClass().getResourceAsStream("/com/gantt/report/ganttreport.jrxml"));
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperprint = JasperFillManager.fillReport(jasperReport, params,con);
JRAbstractExporter exporterPDF = new JRPdfExporter();
exporterPDF.setParameter(JRExporterParameter.JASPER_PRINT, jasperprint);
exporterPDF.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
response.setHeader("Content-Disposition", "inline;filename="+ reportfileName);
response.setContentType("application/pdf");
exporterPDF.exportReport();  
} catch(Exception exception) {
System.out.println("Error occured " +exception.getMessage());
}
}

我的 firebug net 选项卡显示我已收到 4 kb 的 pdf 报告文件作为响应。但问题是下载窗口没有出现,所以我无法保存它或查看该报告。

我的萤火虫显示:
内容处置内联;文件名=report21-0-112-1327135412907.pdf Content-Type application/pdf

我犯了什么错误导致我的下载窗口不出现?

I am able to generate a report in pdf form using JasperReports and Java.

The generated report is not available to be downloaded to the client side.
I am generating pdf file using the code below:

public void getTaskreportPDF(Session openSession,HttpServletRequest request,HttpServletResponse response) {
        try {   
Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/contact","root","root");
Map params = getParameters(openSession);
Date date = new Date();
String reportfileName = "report"+date.getDate()+"-"+date.getMonth()+"-"+date.getYear()+"-"+date.getTime()+".pdf";
JasperDesign jasperDesign = JRXmlLoader.load(this.getClass().getResourceAsStream("/com/gantt/report/ganttreport.jrxml"));
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperprint = JasperFillManager.fillReport(jasperReport, params,con);
JRAbstractExporter exporterPDF = new JRPdfExporter();
exporterPDF.setParameter(JRExporterParameter.JASPER_PRINT, jasperprint);
exporterPDF.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
response.setHeader("Content-Disposition", "inline;filename="+ reportfileName);
response.setContentType("application/pdf");
exporterPDF.exportReport();  
} catch(Exception exception) {
System.out.println("Error occured " +exception.getMessage());
}
}

My firebug net tab shows that I had got the pdf report file of 4 kb as response. But the problem is that download window not appear, so I cannot save it or view that report.

My firebug shows:
Content-Disposition inline;filename=report21-0-112-1327135412907.pdf
Content-Type application/pdf

What mistake I am making which makes my download window not to appear?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

聚集的泪 2025-01-04 08:10:33

对于 Content-Disposition 标头,请使用 attachment 而不是 inline

Use attachment instead of inline for the Content-Disposition header.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文