Window.Open with PDF stream instead of PDF location

前端 未结 2 558
一向
一向 2020-12-13 18:43

Based on the question Open PDF in new browser full window, it looks like I can use JavaScript to open a new window with a PDF file with the following code:



        
2条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-13 19:15

    Note: I have verified this in the latest version of IE, and other browsers like Mozilla and Chrome and this works for me. Hope it works for others as well.

    if (data == "" || data == undefined) {
        alert("Falied to open PDF.");
    } else { //For IE using atob convert base64 encoded data to byte array
        if (window.navigator && window.navigator.msSaveOrOpenBlob) {
            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 { // Directly use base 64 encoded data for rest browsers (not IE)
            var base64EncodedPDF = data;
            var dataURI = "data:application/pdf;base64," + base64EncodedPDF;
            window.open(dataURI, '_blank');
        }
    
    }
    

提交回复
热议问题