-3
var newPDF = window.open(this.generatedPDF.output('bloburl'), '_blank');
newPDF.print();

此代码在 Chrome 中运行完美,但在 IE 中使用此代码时出现警告

你想允许这个网站在你的电脑上打开一个应用程序吗?

点击 YES ,我得到了这个

您将需要一个新的应用程序来打开 BLOB

IE 的可能解决方案是什么?

4

1 回答 1

0

根据您的描述,我想您想在浏览器中显示 PDF 文件,然后打印。

据我所知,IE 11会阻止blob的显示,如果要显示它们,首先我们需要下载它,然后从本地查看。

所以,我建议你可以尝试参考下面的代码,在使用IE浏览器的时候先下载文件,然后打印,在使用其他浏览器的时候,你可以使用你的代码来打印它们:

            // if Internet Explorer or Edge is used, download it.
            if (window.navigator && window.navigator.msSaveOrOpenBlob) {
                var byteCharacters = atob(result.document);
                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, "output.pdf");
            // for all other web browsers
            } else { 
                //your code to print them
            }    

参考:

在 IE 11 中显示二进制文件 (pdf)

如何通过 window.Print() 打印 Pdf 文件?

如何使用 JavaScript 打开从 API 下载的 pdf

于 2019-10-09T15:09:48.910 回答