如何在新标签页上打开.pdf文件

use*_*494 14 javascript jquery url.action asp.net-mvc-3

目标:

在某些任务正确完成后,我必须在新选项卡上打印PDF.

步骤:我想执行一个应该进入服务器的方法,获取PDF并在新的Tab上打开它,我尝试使用这些但是不起作用:

控制器:出口

 public ActionResult PrintPdf()
    {
        Response.AppendHeader("Content-Disposition", "inline; filename= " + MyClassPdfWriter.GetFileName);
        return File(MyClassPdfWriter.GetMemoryStream, "application/pdf");
    }
Run Code Online (Sandbox Code Playgroud)

查看:

function TasksSucced(){
      $.get('@Url.Action("PrintPdf", "Export", "new {target = _blank}")');
}
Run Code Online (Sandbox Code Playgroud)

use*_*494 20

解决了!这对我行得通

 window.open('/Export/PrintPdf');
Run Code Online (Sandbox Code Playgroud)

  • 不适用于“base64”编码文件。至少在 Chrome 中是这样。 (4认同)
  • 弹出窗口阻止程序阻止pdf在chrome中下载,有没有办法让它旋转呢?(告诉用户允许弹出这个页面超出了他们的理解范围:/ (3认同)
  • @cpacheco,您可以通过仅打开选项卡来响应用户操作来绕过弹出窗口阻止程序。换句话说,让他们单击按钮将其打开。所以有一个直接调用window.open()的按钮。 (2认同)

Ser*_*eis 7

有多种方法可以下载或查看 PDF。

  • 看法

您可以在响应标头中将内容类型设置为application/pdf就像Content-Type: application/pdf

为了在javascript中将其打开到新选项卡,请添加此代码。

window.open("Here Download PDF url", '_blank');
Run Code Online (Sandbox Code Playgroud)
  • 下载

您需要在响应标头中将内容类型设置为application/octet-stream,就像application/octet-stream.

并添加下载HTML5属性,一个标签或只是目标=“_空白”

<a href="PDF URL" download="pdf">Download</a>
<a href="PDF URL" target="_blank">Download</a>
Run Code Online (Sandbox Code Playgroud)

因此,您可以使用 PDF.js 或第三个库在 iFrame 或内联页面中查看 PDF。


Tim*_*ech 5

$("a[target!='_blank'][href$='.pdf']").attr("target", "_blank");
Run Code Online (Sandbox Code Playgroud)