如何在流星上使用pdfkit

时间:2014-09-22 17:41:41

标签: meteor pdfkit

我已经安装了meteor add jaredmartin:pdfkit,但文档看起来并不正确。我收到第一行的错误PDFDocument = require' pdfkit'并且无法超越这个?是否有meteor pdfkit手册或者我在流星0.9上做错了什么?

3 个答案:

答案 0 :(得分:1)

哇,我刚刚在这里看到了这个,我很抱歉它已经很久了,你在使用我的包装时遇到了麻烦。事实上,我刚才做的原因是,pascual没有更新他的原始包装以使用新的流星包装系统,所以我把我作为权宜​​之计。从那以后他已经更新了他的包,所以我建议你使用他的包pascoual:pdfkit

答案 1 :(得分:0)

我也遇到了麻烦。我发现以下是一个较旧的流星包,它没有那条线,但我还没有让它工作。

      var doc = new PDFDocument({size: 'A4', margin: 50});
      var imageBase64 = Meteor.users.findOne(this.userId).profile.picture;
      var imageBuffer2 = new Buffer(imageBase64.replace('data:image/png;base64,','') || '', 'base64');
      doc.image(imageBuffer2, 10, 10, {height: 75});
      doc.fontSize(12);
      doc.text('PDFKit is simple', 10, 30, {align: 'center', width: 200});
      // Save it on myApp/public/pdf folder (or any place) with the Fibered sync methode:
      doc.writeSync(process.env.PWD + '/public/pdf/PDFKitExample.pdf');

答案 2 :(得分:0)

在Meteor 1.1.0.2中,我使用Route页面构建PDF并下载它。

(考虑:包乘法:iron-router-progress和pascoual:pdfkit)

Router.route('/buildPDF/:_param1', function () {

  var param1 = this.params._param1;
  if (!param1) return;

  var doc = new PDFDocument({
    size: 'A4',
    margins: {
      top: 50,
      bottom: 0,
      left: 50,
      right: 50,
    }
  });

  doc.image(process.env.PWD + '/public/img/sample1.jpg', 0, 30, {
    width: 598
  });

  doc.rect(0, 370, 598, 210)
    .fill('#22829f', 'even-odd');

  doc.fontSize(25).fillColor('white');
  doc.text('some text', 50, 390, {
    align: 'center',
    width: 500
  });

...

  this.response.writeHead(200, {
    'Content-type': 'application/pdf',
    'Content-Disposition': 'attachment; filename=sometitle.pdf'
  });
  this.response.end(doc.outputSync());
}, {
  where: 'server'
});

所有工作都优先,在chrome中自动下载PDF,除非我在测试Meteor服务器上安装,我只是在空白页面收到消息错误

服务器错误。

使用meteor logs myapp.meteor.com我得到了这个:

W20150615-16:52:09.513(-3)? (STDERR) Error: ENOENT, no such file or directory '/Users/EdU/Documents/Develope/git-repos/TyTimg/layers/sample1.jpg'
W20150615-16:52:09.515(-3)? (STDERR)     at Object.fs.openSync (fs.js:439:18)
W20150615-16:52:09.515(-3)? (STDERR)     at Object.fs.readFileSync (fs.js:290:15)
W20150615-16:52:09.515(-3)? (STDERR)     at Function.PDFImage.open (/Users/EdU/.meteor/packages/pascoual_pdfkit/.1.0.5.7067nv++os+web.browser+web.cordova/npm/node_modules/pdfkit/js/image.js:27:28)
W20150615-16:52:09.515(-3)? (STDERR)     at PDFDocument.module.exports.image (/Users/EdU/.meteor/packages/pascoual_pdfkit/.1.0.5.7067nv++os+web.browser+web.cordova/npm/node_modules/pdfkit/js/mixins/images.js:30:26)

变量process.env.PWD将上下文松散到Meteor测试服务器中。 我试图解决这个问题。我希望能帮到你。