【问题标题】:How to open PDF file in new window in browser?如何在浏览器的新窗口中打开 PDF 文件?
【发布时间】:2016-08-03 02:05:26
【问题描述】:

我正在尝试通过从 Rest 端点请求来打开 PDF 文件。但在这种情况下,文件正在下载。我尝试在另一个窗口中打开它。它也只是显示新窗口并在那里下载。

我使用了 Chrome。因此,在 Chrome 中,默认情况下它会下载文件,而在 Firefox 中,它会显示打开或保存文件的对话框。我不想要那个对话框。但是想要在新窗口中显示文件,并具有普通 pdf 查看器将显示的所有功能,如下载、打印等。

有没有什么方法可以避免默认下载文件而只在另一个窗口中显示该文件?当我看到 URL 的属性时,Content-Disposition 是 attachment; filename="abc.pdf"。此外,它的内容类型是application/pdf;charset=utf-8

<a target="_blank" data-content-type="application/pdf" onclick="open(this.href, this.target, 'fullscreen=yes'); return false;" data-type="downloadTenPointDocument" href="<c:out value="${resultItem.offer.programInfoUrl}"/>">View 10-point</a>

【问题讨论】:

    标签: java jsp google-chrome pdf download


    【解决方案1】:

    您将无法直接从 REST 端点执行此操作。 在页面的锚元素中使用 target="_blank"

    <a href="url_to_your_endpoint_generating_file.pdf" target="_blank">go</a>
    

    【讨论】:

    • 我也在做同样的事情。我正在使用目标 =“_blank”。但在这种情况下,它会打开一个新窗口或选项卡并在那里下载,页面为空白。然而,我希望 pdf 显示在该窗口中。
    【解决方案2】:

    您应该尝试删除附件;来自内容处置标头的属性。

    【讨论】:

    • 你能建议我一种方法吗?
    • 当你写你的标题看起来像 content-disposition : "attachment; filename="abc.pdf""
    • 您能否添加您请求pdf的代码sn-p?
    • 我无法与您分享该链接。既然被授权了。但我会补充一下我的做法。
    • 如果我理解正确,您正在从需要授权的 rest 端点请求 pdf 文件,而不是您的端点。基本上你需要做的是去除附件;财产。您不能直接从链接中执行此操作。您可以从 javascript 请求它并从该 url 创建一个 blob,然后在另一个窗口中返回它。这会起作用,但是您需要向前端添加授权信息,我认为这不是最好的主意。我认为最好的解决方案是编写一个 rest 客户端请求 pdf 并使用不同的标头从您的控制器响应它。
    【解决方案3】:

    我将 pdf 文件的属性从附件更改为内联并在响应中设置它:

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

    我从服务器请求 pdf 文件,然后读取它并设置它作为响应,更改它的属性作为响应,以便它的默认下载行为被覆盖。

    谢谢大家。更改pdf文件属性的答案是正确的。

    【讨论】:

      【解决方案4】:

      我确实喜欢它并且它有效:(它不会开始下载,如果相同的选项卡,它将在新选项卡(目标_blank)中打开,然后是(目标_self)

      &lt;a href="&lt;c:url value='resources/pdfs/your pdf(already in the project).pdf' /&gt;" target="_blank"&gt; show pdf in a new tab&lt;/a&gt;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-04
        • 1970-01-01
        • 2015-12-26
        相关资源
        最近更新 更多