【问题标题】:Chrome pdf api doesn't download ServletOutputStream jasper pdf file [duplicate]Chrome pdf api不下载ServletOutputStream jasper pdf文件[重复]
【发布时间】:2016-08-25 00:06:21
【问题描述】:

我正在尝试在具有 JSF 2.2 的应用程序中显示使用 JasperReports 6.2.0 制作的网络打印报告。 在我的 h:form 上设置 target="_blank" 后,报告在新选项卡中正确显示,但下载按钮不起作用。

代码如下:

HttpServletResponse response = (HttpServletResponse) FacesContext context = FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.setContentType("application/pdf");
ServletOutputStream responseStream = response.getOutputStream();
ByteArrayInputStream relatorioSourceStream = new ByteArrayInputStream(reportJasper);
JasperPrint jp = JasperFillManager.fillReport(relatorioSourceStream, parameters, getConnection());
File file = new java.io.File(path);
if (file.exists()) {
  file.delete();
} else if (file.getParentFile() != null) {
  file.getParentFile().mkdirs();
  file.createNewFile();
}
JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterInput(new SimpleExporterInput(jp));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(file));
SimplePdfExporterConfiguration conf = new SimplePdfExporterConfiguration();
exporter.setConfiguration(conf);
exporter.exportReport();

InputStream is = new FileInputStream(file);
int read = 0;
byte[] bytes = new byte[4096];
while ((read = is.read(bytes)) != -1) {
  responseStream.write(bytes, 0, read);
}
responseStream.flush();
responseStream.close();

报告正确显示,但下载不会做任何事情。

它不是一个“另存为”选项,我希望在加载报告选项卡时显示,它碰巧 chrome api 的下载按钮尝试保存我的页面 (html) 而不是将内容保存为 .pdf文件。

提前致谢。

【问题讨论】:

  • 我编辑了问题的文本,但这不是同一个问题。我想显示流 pdf 内联,但我也希望 chrome API 的下载按钮下载生成的 PDF,而不是从我的页面下载 html。感谢您的关注。

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


【解决方案1】:

成功生成您的错误:在 chomre:Version 51.0.2704.106 m 上,您有另一种方法。您可以使用

直接下载此类文件

httpServletResponse.addHeader("Content-disposition", "attachment; filename=" + outputFileName);

命令还定义文件名。希望能找到解决问题的办法。

【讨论】:

  • 感谢您的回答萨兹。实际上,我目前在我的应用程序中使用了两个不同的按钮:一个用于显示报告,另一个用于使用附件标题下载。还是谢谢。
猜你喜欢
  • 2021-04-30
  • 2019-12-16
  • 1970-01-01
  • 2021-10-11
  • 1970-01-01
  • 1970-01-01
  • 2016-11-28
  • 1970-01-01
  • 2018-07-09
相关资源
最近更新 更多