我正在使用jspdf.js生成pdf。
它返回了一个datauri字符串(pdf),就像这样
data:application/pdf;base64,JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJAyNwovUm9vdCAyNiAwIFIKL0luZm8gMjUgMCBSCj4+CnN0YXJ0eHJlZgo1MDMzMzMKJSVFT0Y...
我尝试在iframe和new选项卡中显示此pdf。
我使用以下代码在iframe中显示pdf:
$('#iframeid').attr('src', x); // here variable x contains datauri string
我使用以下代码在新选项卡中显示pdf:
doc.output('dataurlnewwindow'); //i.e. used jspdf's output() to display it in new tab
在Mozilla Firefox中运行良好。但是,不能在Chrome和IE浏览器中工作。
为什么Chrome和IE浏览器不显示datauri字符串(pdf) ?
- Internet Explorer在版本8之前不支持
datauri
,以后的版本也有数据长度限制(见这里的评论) - Google Chrome在v.42中将
datauri
限制为128K长度时有一些问题。它已经修复了,但是在v49中可能会再次出现这些限制。
请考虑实际的datauri
数据大小,因为它使用base64
编码,导致数据长度增加额外的+25%
。