Как сделать так, чтобы библиотека pdf. js работала в Inte rnet explorer - PullRequest
0 голосов
/ 20 марта 2020

Я использовал pdf.js и pdf.worker.js, чтобы показать всплывающее модальное окно. Он отлично работает в любом браузере, кроме IE. Я видел разные ответы на эту проблему, но ни один из них не помог мне. Я пытался compatible.js заставить pdf.js работать, но это не помогло. Кто-нибудь из вас имеет представление об этом? Пожалуйста, мне действительно нужна помощь.

код, который я использовал для показа pdf-документа в модальном всплывающем окне, приведен ниже:

 // shows te pdf in pop up

        function showPDF(pdf_url) {
            $("#pdf-loader").show();

            PDFJS.getDocument({ url: pdf_url }).then(function (pdf_doc) {

                __PDF_DOC = pdf_doc;
                __TOTAL_PAGES = __PDF_DOC.numPages;

                // Hide the pdf loader and show pdf container in HTML
                $("#pdf-loader").hide();
                $("#pdf-contents").show();
                $("#pdf-total-pages").text(__TOTAL_PAGES);

                // Show the first page
                __PDF_DOC.getPage(1).then(handlePages);
            }).catch(function (error) {
                // If error re-show the upload button
                $("#pdf-loader").hide();
                $("#upload-button").show();
            });
        }

        // takes the pages of pdf
        function handlePages(page) {
            //This gives us the page's dimensions at full scale
            var viewport = page.getViewport(1);

            //We'll create a canvas for each page to draw it on
            var canvas = document.createElement("canvas");
            //canvas.style.display = "block";

            canvas.setAttribute("id", "pdf" + __CURRENT_PAGE);

            canvas.style.cssText = "border-bottom:1px solid #000000; cursor:crosshair; text-align:center; ";

            var context = canvas.getContext('2d');
            canvas.height = viewport.height;
            canvas.width = viewport.width;
            var a = canvas.width + 70;
            document.getElementById("con").style.width = (a + "px");
            if (a > 690) {
                console.log(a);
                $("#header").css({ marginLeft: "0px" });
                $("#header1").css({ marginLeft: "0px" });
            }
            else {
                $("#header").css({ marginLeft: "0px" });
                $("#header1").css({ marginLeft: "0px" });
            }
            //Draw it on the canvas
            page.render({ canvasContext: context, viewport: viewport });
            //Add it to the web page
            document.getElementById("div").appendChild(canvas);
            //document.body.appendChild(canvas);

            //Move to next page
            __CURRENT_PAGE++;
            if (__CURRENT_PAGE <= __TOTAL_PAGES) {
                __PDF_DOC.getPage(__CURRENT_PAGE).then(handlePages);
            }
        }

1 Ответ

0 голосов
/ 23 марта 2020

Возможно, вы используете последнюю версию pdf. js и pdf.worker. js version. Поскольку браузер IE не поддерживает формат ES6, при использовании последней версии Pdf. js может существовать некоторая функция, которая не поддерживает браузер IE 11.

Вы можете попробовать использовать версию ES5 для pdf. js и pdf.worker. js version (Вот пример об использовании pdf. js, это работает хорошо с моей стороны, используя IE11, вы можете проверить это):

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...