我正在尝试获取由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%
我做错了什么?
答案 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浏览器支持和渲染。