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

如何使用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...... %%EOF


var 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服务实现的权限.所以这必须是客户端的解决方案。有什么想法吗?


梦里花落0921
浏览 280回答 3
3回答

明月笑刀无情

我改变了这个var&nbsp;htmlText&nbsp;=&nbsp;'<embed&nbsp;width=100%&nbsp;height=100%' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;'&nbsp;type="application/pdf"' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;'&nbsp;src="data:application/pdf,' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;escape(pdfText) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;'"></embed>';到var&nbsp;htmlText&nbsp;=&nbsp;'<embed&nbsp;width=100%&nbsp;height=100%' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;'&nbsp;type="application/pdf"' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;'&nbsp;src="data:application/pdf;base64,' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;escape(pdfText) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;'"></embed>';对我来说很管用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript