如何在pdfkit中通过循环添加文本

时间:2016-12-06 13:02:32

标签: node.js pdf node-pdfkit

我想在pdfkit中创建一个包含orderitems的PDF文档。

所以我创建了一个包含买家和发件人等信息的pdf文档:

doc = new pdf({autoFirstPage: false});
doc.addPage({
    margin: 50
});
doc.text(shipTo.name, 50);
doc.moveDown(0.5);
doc.text(shipTo.address + " " + shipTo.number + shipTo.addition ? shipTo.addition : "");
doc.moveDown(0.3);
doc.text(shipTo.zip)
doc.moveDown(0.3);
doc.text(shipTo.city);
doc.moveDown(0.3);
doc.text(shipTo.country);

但现在我想展示有关订购产品的一些信息。我已经通过order.items创建了一个循环,它也在产品集合中查找,但是在PDF中没有显示任何内容,但在控制台中我看到了我需要打印的信息。

for(var i = 0; i < order.items.length; i++){
    var item = order.items[i];
    Product.findOne({_id: order.items[i].productId}).exec(function(err, product){
        console.log(item.name, item.quantity, product.eanCode);
        doc.moveDown();
        doc.text(item.name, 50);
        doc.moveUp();
        doc.text(product.eanCode, 300);
        doc.moveUp();
        doc.text(item.quantity, 500);
    })
}

有人知道如何让这个工作吗?

1 个答案:

答案 0 :(得分:0)

你能否显示你的order.items中的内容,因为我认为你只需要你的名字就是你的名字。项目。

显示您的数组以获得一点澄清

例如: -

var arr = ["foo","moo","bar","xyz","abc"];

   var margin = 150;
   var serialNo = 1;
     for(var i=0; i<arr.length ; i++){
      doc.text(serialNo++,50,margin)
      doc.text(arr[i],100,margin)
      margin = margin + 20;
  }

以下是一个快速示例,您可以参考.. :)