在浏览器中呈现ie中的PDF

今天我看了很多不同的SO帖子。

我有一个应用程序需要在浏览器中显示PDF文档。 此应用程序还需要在IE(11+)中运行。

这是事情:一个带有srciframe可以正常工作。 就像是:

<iframe src="www.myurl.com/thedocument"></iframe>

但是, www.myurl.com/thedocument现在受oAuth保护。 这意味着我需要使用适当的授权标头凭证请求www.myurl.com/thedocument

这意味着(我认为),我必须通过ajax请求www.myurl.com/thedocument 。 ajax请求返回base64或包含文档的byte []。

IE不支持数据URI来呈现PDF,所以我不能将来自我的ajax请求的响应放到iframe中。

所以..现在我被卡住了。

有任何想法吗?

谢谢


一种选择是使用PDF.js,这是一个用于将PDF呈现到支持IE10 +的HTML5画布中的JavaScript库。 该库支持从TypedArray(例如Uint8Array)加载PDF数据,这可以从ajax请求的结果中产生。

我在这里准备了一个简短的例子,显示存储在base64编码二进制文件中的单页PDF。 为了避免执行base64转换,还可以直接从XMLHttpRequest响应中检索TypedArray:

function reqListener () {
    var byteArray = new Uint8Array(this.response);
    PDFJS.getDocument(byteArray).then(function(page) {
        // ....
    });
}

var req = new XMLHttpRequest();
req.addEventListener("load", reqListener);
req.responseType = "arraybuffer";
req.open("GET", "http://www.example.com/example.pdf");
req.send();

为了支持您在本地pdf查看器(打印等)中期望的功能,该库包含一个示例查看器,您可以根据自己的目的进行调整。

链接地址: http://www.djcxy.com/p/30487.html

上一篇: Rendering PDFs in ie inside the browser

下一篇: Get ComponentRef from DOM element