试图显示ajax返回的PDF

时间:2015-07-09 16:31:12

标签: jquery ajax pdf jsreport

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

我做错了什么?

1 个答案:

答案 0 :(得分: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();

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