我正在尝试使用pdf.js的一个非常基本的例子。我想做的就是渲染并显示一个包含来自github的hello-world代码的jade模板。我在节点应用程序中运行它。 pdf.js文件是~node make generic命令的结果。
模板是:
body
canvas(id='the-canvas')
script(type="text/javascript", src="/scripts/dependencies/pdf.js")
script(type="text/javascript", src="/scripts/dependencies/compatibility.js")
script(type="text/javascript")
'use strict';
PDFJS.disableWorker = true;
PDFJS.getDocument('/tmp/util_ac.pdf').then(function(data){
var pdf = new PDFJS.PDFDoc(data);
var page = pdf.getPage(1);
var scale = 1.5;
var canvas = document.getElementById('the-canvas');
var context = canvas.getContext('2d');
canvas.height = page.height * scale;
canvas.width = page.width * scale;
page.startRendering(context);
});
我的错误讯息是
注意:我设置disableWorker = true,否则会出现.workerSrc错误
Warning: Setting up fake worker. pdf.js:1418
TypeError: undefined is not a function
at http://localhost:8000/docs/viewer:51:13
at Object.Promise_resolve [as resolve].transportDoc
答案 0 :(得分:0)
我尝试了没有disableWorker=true
的代码,因为否则承诺永远不会被调用,并且项目中包含pdf.worker.js(由node make generic
生成的另一个文件)所以我不这样做得到.workerSrc错误(究竟是什么?)。此外,PDFDoc
构造函数在我正在使用的pdf.js版本中似乎已经过时 - 0.8.0。进行这些更改后,PDF可以正常加载。