Meteor jsPDF包错误

时间:2014-08-09 19:09:42

标签: javascript meteor meteorite

我将js-pdf package添加到我的Meteor应用程序中,但每当我运行一个简单的hello world代码时,我都会收到错误:

代码:

var doc = new jsPDF();
doc.setFontSize(40);
doc.text(35, 25, "Paranyan loves jsPDF");

我明白了:

[Error] ReferenceError: Can't find variable: jsPDF
click #download-pdf (manageatas.js, line 53)
(anonymous function) (templating.js, line 120)
(anonymous function) (blaze.js, line 2205)
withCurrentView (blaze.js, line 2038)
(anonymous function) (blaze.js, line 2204)
(anonymous function) (blaze.js, line 802)
dispatch (jquery.js, line 4657)
handle (jquery.js, line 4325)

我尝试安装了软件包,我尝试下载代码并将其添加到客户端文件夹但我再次收到同样的错误...

出了什么问题?

3 个答案:

答案 0 :(得分:1)

我也遇到了很多问题。

尝试放jspdf.debug.js 在你的代码中的某个地方(我的客户端/第三方/我),从var jsPDF =(函数(全局)中删除var并以这种方式给它一个镜头。

请务必先删除软件包和其他jspdf js文件!

答案 1 :(得分:0)

该软件包似乎与最近的Meteor版本不兼容(这很奇怪,因为它似乎接收更新)。我建议手动将jspdf.js添加到/client/lib/compatibility文件夹中。

如果您不想使用compatibility文件夹,则需要确保在全局范围内创建jsPDF对象,而不是文件中的本地变量。幸运的是,它很简单 - 只需从声明中删除var关键字即可。换句话说,第39行应该是:

jsPDF = (function () {

而不是

var jsPDF = (function () {

答案 2 :(得分:0)

使用html-pdf npm包创建动态html到pdf文件。它非常易于使用

步骤:

  1. 为报表布局设计创建html文件
  2. 通过SRS模板方法以json格式传递动态数据并获取html代码。
  3. 在以下函数中传递html代码
  4. 代码在这里:

    var fs = require('fs');
    var pdf = require('html-pdf');
    var options = { format: 'Letter' };
    
    pdf.create(html, options).toFile('./businesscard.pdf`enter code here`', function(err, res) {
      if (err) return console.log(err);
      console.log(res); // { filename: '/app/businesscard.pdf' } 
    });
    

    其中html代表HTML代码。

    访问https://www.npmjs.com/package/html-pdf