【问题标题】:How do you open a PDF in a new tab and show it in the browser (don't ask to download)?如何在新选项卡中打开 PDF 并在浏览器中显示(不要要求下载)?
【发布时间】:2014-11-28 22:38:59
【问题描述】:

我有一个 PDF 链接,当我单击它时,我希望它打开一个新选项卡并在新选项卡中呈现,而不是要求我下载它。我该怎么做?

注意,我问这个问题是为了回答。这些信息可以从其他答案中拼凑起来,但我希望它们都集中在一个地方

【问题讨论】:

    标签: java pdf browser tabs header


    【解决方案1】:

    要在新选项卡中打开链接(PDF 或非 PDF),您必须修改该链接的 HTML 来自

    <a href="/link_to_pdf.pdf">PDF</a>
    

    <a href="/link_to_pdf.pdf" target="_blank">PDF</a>
    

    要在浏览器中打开 PDF,您必须对响应标头进行服务器端更改。在 Java 中,您可以这样做:

    response.setContentType("application/pdf");
    response.addHeader("content-disposition", "inline; filename=link_to_pdf.pdf");
    

    最重要的是inline。如果您输入attachment,您的浏览器将尝试下载它。 You can read more here.

    【讨论】:

    • 完美! inline 是我们所需要的。对于使用 C# MVC 的用户,请添加以下内容:HttpContext.Response.AddHeader("content-disposition", "inline; filename=link_to_pdf.pdf");
    【解决方案2】:

    秘诀是在方法响应中使用 InputStreamResource 作为 ResponseEntity:

    @GetMapping(path = "/pdf/{key}", produces = MediaType.APPLICATION_PDF_VALUE)
    @ResponseBody
    public InputStreamResource pdf(@PathVariable("key") String key){
        InputStream file = pdfservice.get(key);
        return new InputStreamResource(file);
    }
    

    【讨论】:

    • 代码小,简单,自解释。如果程序员正在做一个 REST 来下载 PDF,我发布的这段代码就像 ABC 一样简单。
    猜你喜欢
    • 2016-09-24
    • 2014-03-19
    • 2016-05-04
    • 2015-06-11
    • 2021-03-25
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多