PDFJS.getDocument不能正常工作,也不会抛出错误

问题描述:

事后并没有进入.then,也没有抛出任何错误。PDFJS.getDocument不能正常工作,也不会抛出错误

这里是我的调用代码:

function loadPage(base64Data, pageIndex) { 
    var pdfData = base64ToUint8Array(base64Data); 
    // this gets hit 
    PDFJS.getDocument(pdfData).then(function (pdf) { 
    // never gets here 
    pdf.getPage(pageIndex).then(function (page) { 
     var scale = 1; 
     var viewport = page.getViewport(scale); 
     var canvas = document.getElementById('pdfPage'); 
     var context = canvas.getContext('2d'); 
     canvas.height = viewport.height; 
     canvas.width = viewport.width; 
     page.render({ canvasContext: context, viewport: viewport }); 
    }); 
    }); 
} 

function base64ToUint8Array(base64) { 
    var raw = atob(base64); // convert base 64 string to raw string 
    var uint8Array = new Uint8Array(raw.length); 
    for (var i = 0; i < raw.length; i++) { 
    uint8Array[i] = raw.charCodeAt(i); 
    } 
    return uint8Array; 
} 

在一个点上,它的工作。当我在调试器中浏览它时,我可以进入PDFJS.getDocument,但那是我的头。

我的base64Data看起来像JVBERi0x...g==。这是一个base64编码的pdf文档。

+0

则()有故障的第二个参数,看PDF.js采用无极API – async5

+0

@ async5,我固定它。看到我的答案。谢谢! – toddmo

为了解决这个问题,我不得不

PDFJS.disableWorker = true; 

添加到我的loadPage功能的开始。

View PDF files directly within browser using PDF.js

PDF.js使用的是HTML5的Web工作者概念内部处理 请求。如果将此语句设置为false,则会创建一个Web工作人员实例 。 Web Workers在一个独立的线程中运行。有关网络工作者的更多信息 ;请参阅 http://www.html5rocks.com/en/tutorials/workers/basics/