javascript - PDF.js 无法在 IE 中正确呈现 pdf

标签 javascript canvas pdf.js pdf-parsing pdf-rendering

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

请参阅以下 IE 11 屏幕

enter image description here

看下面的代码:

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;
    };

请帮帮我。

最佳答案

如果您的 PDF.js 在 IE11 中不工作,则需要 compatibility.js . 您可以将以下行插入到您的代码中紧跟在标记之后(在任何其他 <script> 之前):

<script type="text/javascript" src="../../web/compatibility.js"></script>

您还可以在下面添加文件:

希望对您有所帮助。

关于javascript - PDF.js 无法在 IE 中正确呈现 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31542835/

相关文章:

javascript - 用于电话验证的正则表达式

android - 屏幕尺寸变化时如何缩放线条的粗细或笔划宽度

javascript - 为什么某些 .js 文件下载到本地主机后停止工作?

javascript - 构建失败后 Electron 将文件添加到公用文件夹

javascript - 如何知道表单输入是否为空(React Hooks)

javascript - Jquery 替换为并在再次单击同一个类时恢复旧值

javascript - 添加到对象而不是覆盖它

javascript - 单击按钮更新/重绘 Canvas

javascript - HTML5/JS - 将 Canvas 导出为 PNG 时出错 - 来自其他服务器的图像

javascript - 使用 Hammer.js 在 PDF.js 上缩放