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

问题描述 投票:1回答:1

我正在使用以下代码在使用PDF.js的IE浏览器中显示PDF。但是页面显示的顺序与原始文件不同。如何解决此问题?仅在处理大型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 });
                    });
                }
             });
        }
javascript pdf.js
1个回答
0
投票

我遇到了同样的问题。我使用async和await修复了相同问题。请检查。

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);
                }
© www.soinside.com 2019 - 2024. All rights reserved.