PDF.js在IE浏览器中未正确渲染PDF文件

11

我正在使用PDF.js框架来呈现PDF。我正在使用base64数据来呈现PDF。但在IE 11中,PDF看起来模糊。

请参见下面来自IE 11的屏幕截图

输入图片描述

请查看以下代码:

var renderPDF = function(url, canvasContainer,data) {
        var scale= 0.9;  //"zoom" factor for the PDF

        function renderPage(page) {
            var canvas = document.createElement('canvas');
            var viewport = page.getViewport(scale);

            var ctx = canvas.getContext('2d');
            var renderContext = {
                canvasContext: ctx,
                viewport: viewport
            };

            canvas.height = viewport.height;
            canvas.width = viewport.width;

            canvasContainer.appendChild(canvas);

            page.render(renderContext);
        }

        function renderPages(pdfDoc) {
            for(var num = 1; num <= pdfDoc.numPages; num++)
                pdfDoc.getPage(num).then(renderPage);
        }

        PDFJS.disableWorker = false;

        var pdfAsDataUri = "data:application/pdf;base64,"+data; // shortened
        var pdfAsArray = convertDataURIToBinary(pdfAsDataUri);
        PDFJS.getDocument(pdfAsArray).then(renderPages);

    };

    var BASE64_MARKER = ';base64,';

    var convertDataURIToBinary = function(dataURI) {
      var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
      var base64 = dataURI.substring(base64Index);
      var raw = 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;
    };

请帮助我。

2个回答

2
如果您在IE11中无法使用PDF.js,则需要使用compatibility.js。您可以在代码的<head>标签后(在任何其他<script>之前)插入以下行: <script type="text/javascript" src="../../web/compatibility.js"></script> 您还可以添加下面的文件: 希望能帮到您。

2
兼容性文件compatibility.js在此处:https://github.com/mozilla/pdf.js/blob/master/web/compatibility.js - Rizky Ariestiyansyah

1
这是PDF.js框架的代码...我想要做的就是检查IE10是否正常工作...如果不行!!!那么你的代码可能存在一些问题,无法正确创建... PDF.js可以验证。(在IE11上验证)那么就不是框架的问题。
另一个问题可能是一些字符不正确!!!你能发布一下你的变量"data"吗? 谢谢!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接