pdf.js在节点应用程序中运行hello world

时间:2013-06-10 16:56:30

标签: javascript pdf.js

我正在尝试使用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 

1 个答案:

答案 0 :(得分:0)

我尝试了没有disableWorker=true的代码,因为否则承诺永远不会被调用,并且项目中包含pdf.worker.js(由node make generic生成的另一个文件)所以我不这样做得到.workerSrc错误(究竟是什么?)。此外,PDFDoc构造函数在我正在使用的pdf.js版本中似乎已经过时 - 0.8.0。进行这些更改后,PDF可以正常加载。