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文档。
答
为了解决这个问题,我不得不
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/
则()有故障的第二个参数,看PDF.js采用无极API – async5
@ async5,我固定它。看到我的答案。谢谢! – toddmo