如何使用javascript从web服务返回的二进制字符串生成PDF文件我正在尝试从二进制流构建一个PDF文件,作为Ajax请求的响应。通孔XmlHttpRequest我收到以下数据:%PDF-1.4.............hole data representing the file....%% EOF到目前为止,我尝试的是通过data:uri..现在,它没有什么问题,而且运作良好。不幸的是,它不能在IE9和Firefox中工作。一个可能的原因可能是FF和IE9在使用data-uri.现在,我正在寻找适用于所有浏览器的解决方案。这是我的密码:// responseText encoding pdfText = $.base64.decode($.trim(pdfText));// Now pdfText contains %PDF-1.4 ...... data...... %%EOFvar winlogicalname = "detailPDF";var winparams = 'dependent=yes,locationbar=no,scrollbars=yes,menubar=yes,'+ 'resizable,screenX=50,screenY=50,width=850,height=1050';var htmlText = '<embed width=100% height=100%' + ' type="application/pdf"' + ' src="data:application/pdf,' + escape(pdfText) + '"></embed>'; // Open PDF in new browser window var detailWindow = window.open ("", winlogicalname, winparams); detailWindow.document.write(htmlText); detailWindow.document.close();正如我说过的,它在Opera和Chrome上运行得很好(Safari还没有经过测试)。使用IE或FF将弹出一个空白的新窗口。有没有类似于在文件系统上构建PDF文件以便让用户下载的解决方案?我需要的解决方案,在所有的浏览器,至少在IE,FF,Opera,Chrome和Safari。我没有编辑Web服务实现的权限.所以这必须是客户端的解决方案。有什么想法吗?
3 回答
明月笑刀无情
TA贡献1828条经验 获得超4个赞
var htmlText = '<embed width=100% height=100%' + ' type="application/pdf"' + ' src="data:application/pdf,' + escape(pdfText) + '"></embed>';
var htmlText = '<embed width=100% height=100%' + ' type="application/pdf"' + ' src="data:application/pdf;base64,' + escape(pdfText) + '"></embed>';
添加回答
举报
0/150
提交
取消