节点JS& pdfkit - addPage()循环

时间:2013-11-13 04:30:26

标签: javascript node.js

我正在使用Node.js和pdfkit来生成名称标签标签。目标是通过First& amp;发送一系列人物对象。姓名和每个人的标签数量qty。以下是我的想法:

var PDFDocument = require('pdfkit');

var people = [
    {qty:2, first:'Bob', last:'Hope'},
    {qty:3, first:'Bing', last:'Crosby'}
];

function makePDF (people) {

    var doc = new PDFDocument({
        size: [165,288],
        margins: 1
    }),
    firstTag = true;

    doc.rotate(90);

    // Loop through each person
    for (var i = 0; i < people.length; i++) {

        // Generate each name tag
        for (var x = 0; x < people[i].qty; x++) {

            if (firstTag) {// First page is automatically created
                firstTag = false;
            } else {// The rest must be added
                doc.addPage();
            }

            doc.fontSize(40).text(people[i].first, 13, -150);
            doc.fontSize(16).text(people[i].last, 15, -117);

        }
    }

    doc.write('tags.pdf');
}

makePDF(people);

这会生成一个5页的pdf(它应该有2个人和3个另一个人) - 但只有第一个标签有关于它的信息,其余的是空白的。

如何在此方案中正确使用addPage()?或者有更好的方法来获得相同的结果吗?

1 个答案:

答案 0 :(得分:0)

想出来 - 显然每次添加新页面时我都要旋转它。

第16行的

doc.addPage()变为doc.addPage().rotate(90)