【问题标题】:How can i open a pdf in a popup window with an Ajax call?如何使用 Ajax 调用在弹出窗口中打开 pdf?
【发布时间】:2012-06-11 12:40:09
【问题描述】:

所以我需要能够打开一个由服务器端脚本根据我发送的 html 生成的 pdf。 html 是一个巨大的字符串。我正在考虑将 ajax 与 widow.open 一起使用,但我似乎无法理解如何使用。

$.ajax({
        type: "POST",
        url: "/pdf",
        data: {input:html},
        success: function(msg) {
            window.open(msg)
        },
        error: function(msg) {

        }
    });

我认为这会起作用,但事实并非如此。

【问题讨论】:

  • 这对stackoverflow.com/a/2186623/723057有帮助吗?
  • 我相信我正在寻找的东西。我真的无法理解。
  • 您需要 JavaScript 或后端处理方面的帮助吗?我问的原因是因为我认为 JavaScript 本身无法生成 PDF,但如果可以从脚本中获取并呈现正确的内容标题。
  • 我认为这不可能以简单的跨浏览器方式实现。为什么不打开包含 PDF 的iframe

标签: javascript ajax pdf


【解决方案1】:

您可以使用 jQuery PDF 查看器插件。例如,使用jsPDF,您将编写如下内容:

$.ajax({
   type : "POST",
   url : "/pdf",
   data : {
      input : html
   },
   success : function (msg) {
      var pdf = new jsPDF();
      pdf.text(20, 20, msg);
      pdf.output('datauri');
   },
   error : function (msg) {}
});

【讨论】:

  • 如果我正确理解了这个问题,它会询问如何使用 AJAX 查看从服务器检索到的 PDF;不会根据通过 AJAX 接收的内容生成 PDF。
  • @icktoofay 嗯。也许你是对的,但看看代码示例,我不同意你的看法。在我看来,服务器返回的是一条消息 (msg),而不是 URL。
  • 很抱歉造成混乱,但@icktoofay 是正确的。我需要能够查看 pdf。
  • @B7ackAnge7z msg 实际上是返回的 pdf。我知道这很混乱。
  • @PhongLe 在这种情况下,iframe 可以解决您的问题。另外,您可以使用jsPDF,但服务器需要返回消息,而不是PDF内容。
猜你喜欢
  • 2019-01-25
  • 1970-01-01
  • 2016-11-08
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 2023-02-26
  • 2012-08-20
  • 1970-01-01
相关资源
最近更新 更多