简体   繁体   English

PDF.js 未按正确的页面顺序显示 PDF 文件

[英]PDF.js not showing PDF files in correct page order

I'm using the following code to display PDF in IE browser using PDF.js.我正在使用以下代码在 IE 浏览器中使用 PDF.js 显示 PDF。 But the pages are not showing up in same order as the original file.How do I fix this?但是页面的显示顺序与原始文件不同。我该如何解决这个问题? This happens when for large PDF documents alone...仅当对于大型 PDF 文档时会发生这种情况...

if (response && response.data.Success) {
            var arrayBufferedPdf = base64ToArrayBuffer(response.data.Document);
            PDFJS.workerSrc = "./scripts/pdf.worker.js";
            PDFJS.getDocument({ data: arrayBufferedPdf }).then(function (pdf) {
                var pageNum = 1;
                var numPages = pdf.numPages;
                for (pageNum; pageNum <= numPages; pageNum++) {
                    pdf.getPage(pageNum).then(function (page) {
                        var scale = 1.25;
                        var viewport = page.getViewport(scale);
                        var canvasContainer = document.getElementById('canvas_container');
                        var canvas = document.createElement('canvas');
                        canvas.height = viewport.height;
                        canvas.width = viewport.width;
                        canvasContainer.appendChild(canvas);
                        var context = canvas.getContext('2d');
                        page.render({ canvasContext: context, viewport: viewport });
                    });
                }
             });
        }

I faced the same problem.我遇到了同样的问题。 I fixed the same using async and await.我使用 async 和 await 修复了相同的问题。 please check.请检查。

async function renderPages(pdfDoc) {
                    var docId = pdf.docId;
                    var pdfDocumentObject =  {};
                    pdfDocumentObject[docId] = pdfDoc;
                    pdfData.setPdfDocumentObject(pdfDocumentObject);
                    for (var num = 1; num <= pdfDoc.numPages; num++) {
                        await pdfDoc.getPage(num).then(renderPage);
                    }
                }

                if(pdf.docBlob && pdf.docId == null){
                    var blob = b64toBlob(pdf.docBlob, 'pdf');
                    pdfurl = URL.createObjectURL(blob);
                    PDFJS.getDocument(pdfurl).then(renderPages);
                }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM