【问题标题】:How to display PDF file in browser如何在浏览器中显示PDF文件
【发布时间】:2015-09-09 10:08:59
【问题描述】:

在我的 servlet 中,我使用下面的代码在浏览器中打开 PDF 文件,但它显示的是下载对话框。

我做错了什么?

response.setContentType("application/pdf");
out = response.getWriter();
String filepath = "D:/MyFolder/PDF/MyFile.pdf";

response.setHeader("Content-Disposition", "inline; filename=" + filepath + ";");
FileOutputStream fileOut = new FileOutputStream("D:/MyFolder/PDF/MyFile.pdf");

fileOut.close();
out.close();

【问题讨论】:

  • 我有一个解决方案,但不太可行,即使用 apache poi api 并将 pdf 文件中的每一页转换为图像然后显示它
  • 如何在 servlet 中做到这一点??
  • 这取决于浏览器和安装的插件,我猜。

标签: java servlets


【解决方案1】:

因为您必须使用以下配置设置响应类型:-

File outPutFile=new File(generatedFile);
stream = response.getOutputStream();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=\"" + filename + "\"");
response.setContentLength((int) outPutFile.length());

【讨论】:

  • 小错字:outPut -> 输出(只有 1 个字)
  • @SaviNuclear 我试过了,但它不起作用你能建议一些其他方法吗???
  • @vineethPrabhakaran 请您提供错误消息或日志详细信息以了解您的问题。
【解决方案2】:

你可以尝试做同样的事情

response.setHeader("Content-Disposition", "attachment;filename="+filepath+";");

【讨论】:

    【解决方案3】:

    你需要这个:

    response.setContentType("application/pdf") 
    response.setHeader("Content-Disposition", "inline; filename= .. " )
    

    否则,浏览器会提示您打开/保存。 (如果内容类型是八位字节流,或者内容处置是附件)

    如果您希望 pdf 显示在选项卡中,则需要在 html 中设置 target = "_blank"(或 angular、jsp,无论您使用什么框架)。

    【讨论】:

      【解决方案4】:

      This 相关

      您的浏览器是 Firefox 吗? This 可能是相关的

      【讨论】:

      • 其实我试过用它,但还是不能显示pdf
      猜你喜欢
      • 2019-09-08
      • 2017-12-28
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2014-06-18
      • 2017-05-28
      相关资源
      最近更新 更多