且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用Internet Explorer 10及更低版本保存Base64编码的PDF

更新时间:2023-12-04 13:53:42

我知道这是一个非常古老的问题,但我找到了解决方案,我想分享有同样问题的人。你可以在这里看到演示:
https://jsfiddle.net/quangminh_ln/hy36tnt6/

I know this is very old question, but I found the solution and I want to share anyone who has the same problem. You can see the demo here : https://jsfiddle.net/quangminh_ln/hy36tnt6/

'use strict';

var data = "...Your PDF base64 string...";
var fileName = "your_file_name";
if (window.navigator && window.navigator.msSaveOrOpenBlob) { // IE workaround
    var byteCharacters = atob(data);
    var byteNumbers = new Array(byteCharacters.length);
    for (var i = 0; i < byteCharacters.length; i++) {
        byteNumbers[i] = byteCharacters.charCodeAt(i);
    }
    var byteArray = new Uint8Array(byteNumbers);
    var blob = new Blob([byteArray], {type: 'application/pdf'});
    window.navigator.msSaveOrOpenBlob(blob, fileName);
}
else { // much easier if not IE
    window.open("data:application/pdf;base64, " + data, '', "height=600,width=800");
}

我在解决方案中看到的链接: https://viethoblog.wordpress.com/2016/ 08/30 / loaddisplay-pdf-from-base64-string-bonus-ie-workaround /

The link that I saw for my solution : https://viethoblog.wordpress.com/2016/08/30/loaddisplay-pdf-from-base64-string-bonus-ie-workaround/