打开 pdf.js 在 IE11 中使用数据 URL

Open pdf.js with a data URL in IE11

本文关键字:数据 URL IE11 pdf js 打开      更新时间:2023-09-26

我正在尝试使用 pdf.js 在 IE10 上以数据 URL 显示文档。也就是说,像这样的东西。

它适用于Firefox或Chrome,但在Internet Explorer 10和11中,界面会显示,但保持为空,并且文档永远不会加载。

我检查了,兼容性.js包含在渲染器页面(查看器.html)中,因此应该存在IE支持。

编辑:实际上这是一个安全问题,因为IE不允许运行这种类型的请求。

提前感谢,

好的,如果有人遇到同样的问题,我通过绕过库的正常加载路径来解决它,并按照 async5 的建议,将数据直接转换为字节数组。

也就是说,在查看器.js中,将这些行添加到第 6856 行下:

  if (file && file.lastIndexOf('data:', 0) === 0) {
      // data: url-scheme. we will load those with direct conversion to byte array
      function convertDataURIToBinary(dataURI) {
          var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
          var base64 = dataURI.substring(base64Index);
          var raw = window.atob(base64);
          var rawLength = raw.length;
          var array = new Uint8Array(new ArrayBuffer(rawLength));
          for(var i = 0; i < rawLength; i++) {
              array[i] = raw.charCodeAt(i);
          }
          return array;
      }
      // PDFViewerApplication.setTitleUsingUrl(file);
      PDFViewerApplication.open(convertDataURIToBinary(file), 0);
      return;
  }

(base64 到字节数组代码是 Codetoffel 在这里发布的代码)