PDF文件在同一窗口中打开,但我想将其作为单独的文件打开

时间:2010-11-02 07:13:32

标签: java pdf servlets

PDF文件在同一窗口中打开,但我想在没有另存为对话框的情况下将其作为单独的文件打开。

这是一段相关的servlet代码:

response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setHeader("Content-Disposition", "attachment;filename=_blank_");
response.setContentType("application/pdf");
response.setContentLength(baos.size());
ServletOutputStream out = response.getOutputStream();
baos.writeTo(out);
out.flush();

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

您有两种可能性:

  1. Content-Disposition: attachment;filename=foo.pdf
  2. Content-Disposition: inline;filename=foo.pdf
  3. 第一个提示用户保存文件,并且对话框取决于浏览器,您无法从服务器端脚本做很多事情。第二个在浏览器中打开pdf,如果有一个注册程序能够像Adobe Reader那样执行此操作。

答案 1 :(得分:0)

你问这个问题很久以后,可能到现在为止你已经得到了你的问题。我遇到了同样的问题,我的要求是在单独的窗口中打开PDF文件。无论回答什么建议都是好的。我想补充几行。

在servlet中,你应该添加以下代码
webAppAccess.getHttpServletResponse()。setHeader(“Content-Disposition”,“inline; filename = printReport.pdf”);

并在jsp文件中

**window.open('PrintReportConsumer?operation=getShortReport&customerNumber=400000852&relationNumber=400000852&fromDate=29-Jun-2012&toDate=02-Jul-2012&languageId=en&language=en');**