为了账号安全,请及时绑定邮箱和手机立即绑定

请问如何使用javascript从web服务返回的二进制字符串生成PDF文件

请问如何使用javascript从web服务返回的二进制字符串生成PDF文件

梦里花落0921 2019-08-03 07:03:26
如何使用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>';

对我来说很管用。



查看完整回答
反对 回复 2019-08-05
  • 3 回答
  • 0 关注
  • 279 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信