【发布时间】:2019-12-16 16:56:30
【问题描述】:
我有一个从 http post 方法返回的字节数组(从原始 PDF 文件转换而来)。我的要求是在 iframe 中呈现原始 PDF,我将 Angular 1.x 与 IE/Edge 浏览器一起使用。
【问题讨论】:
标签: javascript pdf internet-explorer iframe bytestream
我有一个从 http post 方法返回的字节数组(从原始 PDF 文件转换而来)。我的要求是在 iframe 中呈现原始 PDF,我将 Angular 1.x 与 IE/Edge 浏览器一起使用。
【问题讨论】:
标签: javascript pdf internet-explorer iframe bytestream
IE 和 Microsoft Edge don't support iframe 将数据 url 作为 src 属性。所以不能直接在IE或者Microsoft Edge的iframe中显示pdf的blob数据。
解决方法是在 IE 和 Microsoft Edge 中使用 msSaveOrOpenBlob 处理 blob 以打开 pdf 或使用 PDF.js 在使用 <canvas> 的浏览器中呈现它。有关使用 PDF.js 的更多信息,您可以参考 this thread 和 this thread。
【讨论】:
我在这里提出了类似的问题。事实是,即使您使用 pdf 查看器,您也不能直接在 IE/Microsoft Edge 中将 PDF 作为 blob 直接显示。您可以使用的唯一解决方案是msSaveOrOpenBlob():
navigator.msSaveOrOpenBlob(blob_url);
如果需要,您可以在新窗口中执行操作:
window.open(navigator.msSaveOrOpenBlob(blob_url))
这将提示您打开或保存文件。如果单击打开按钮,它将下载文件的本地副本并打开它,这在 IE/Edge 中是可能的。如果你执意要查看文件,我建议你使用谷歌浏览器或火狐浏览器,这两种浏览器都可以直接打开文件。 Firefox 有自己的 PDF 查看器。
编码愉快!! :)
【讨论】: