0

我正在尝试获取由 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%

我究竟做错了什么?

4

1 回答 1

0

根据我的经验,您会遇到各种使用 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();

您还可以查看此文档以了解 jsreport 浏览器支持和呈现。

于 2015-07-10T07:26:04.207 回答