Jsf Chrome pdf api没有';下载ServletOutputStream jasper pdf文件
我试图在JSF2.2应用程序中显示一个使用JasperReports 6.2.0制作的web打印报告。 在我的h:form上设置target=“\u blank”后,报告在新选项卡中正确显示,但下载按钮不起作用 代码如下:Jsf Chrome pdf api没有';下载ServletOutputStream jasper pdf文件,jsf,jasper-reports,export-to-pdf,Jsf,Jasper Reports,Export To Pdf,我试图在JSF2.2应用程序中显示一个使用JasperReports 6.2.0制作的web打印报告。 在我的h:form上设置target=“\u blank”后,报告在新选项卡中正确显示,但下载按钮不起作用 代码如下: HttpServletResponse response = (HttpServletResponse) FacesContext context = FacesContext.getCurrentInstance().getExternalContext().getResp
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();
碰巧报告显示正确,但下载不会起任何作用
我不希望在加载报告选项卡时显示“另存为”选项,但ChromeAPI的下载按钮尝试保存我的页面(html),而不是将内容保存为.pdf文件
提前感谢。已成功生成您的错误:在chomre:Version 51.0.2704.106 m上,您有一种替代方法。您可以使用 httpServletResponse.addHeader(“内容处置”、“附件;文件名=“+outputFileName”)代码>
命令还定义文件名。希望能找到问题的解决办法。我编辑了问题的文本,但问题不一样。我想以内联方式显示pdf流,但我也希望ChromeAPI的下载按钮下载生成的pdf,而不是从我的页面下载html。谢谢你的关注,谢谢你的回答。实际上,我目前在应用程序中使用了两个不同的按钮,一个用于显示报告,另一个用于使用附件标题下载。无论如何,谢谢你。