【问题标题】:Trying to display PDF returned by ajax试图显示由 ajax 返回的 PDF
【发布时间】:2015-07-09 16:31:12
【问题描述】:

我正在尝试获取由 jsreport 创建的 PDF 报告并将其显示在新窗口/标签中。

ajax 响应包含数据,看起来像 PDF 内容:

%PDF-1.4
1 0 obj
<<
/Title ...

当我尝试用

显示数据时
window.open('data:application/pdf;base64,' + data);

会打开一个新的空选项卡 - 不显示任何内容。

当我尝试时:

window.open('data:application/pdf,' + data);

一个带有 PDF 插件的新标签打开,提示内容不正确。 URL 地址显示为:

data:application/pdf,%PDF-1.410obj<</Title(%EF%BF%BD%EF%BF%BD)/Creator(%EF%

我做错了什么?

【问题讨论】:

    标签: jquery ajax pdf jsreport


    【解决方案1】:

    根据我的经验,您会遇到各种使用 ajax 和 pdf 的跨浏览器问题。假设您通过发布到 jsreport 服务器来获得 pdf,那么只需将简单的 http 表单发布到新选项卡就更容易、更稳定。

    <form method='POST' target='_blank' action='http://<jsreport>/api/report' id='jsrForm'>
            <input hidden='true' type='text'name='template[shortid]' value="xykdJcxR5"/>       
            <input hidden='true' type='text'name='data[foo]' value="1"/>
    </form>
    

    提交此表单应该会打开一个带有报告的新标签

    document.getElementById("jsrForm").submit();
    

    您还可以查看此documentation 以获取 jsreport 浏览器支持和渲染。

    【讨论】:

      猜你喜欢
      • 2018-11-19
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      • 2013-04-01
      • 2012-08-22
      • 2019-10-03
      相关资源
      最近更新 更多