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

2023-11-29

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

它在 Firefox 或 Chrome 中运行良好,但在 Internet Explorer 10 和 11 中,会显示界面,但保持空白,并且文档永远不会加载。

我检查过,compatibility.js 包含在渲染器页面(viewer.html)中,因此应该存在 IE 支持。

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

提前致谢,


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

也就是说,在viewer.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 发布的here)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 IE11 中使用数据 URL 打开 pdf.js 的相关文章

随机推荐