Node.js pdfkit节点,第2页的每页一个元素
Im使用pdfkit生成pdf发票。 当我所有的内容都放在一个页面上时,我就没有问题了 然而,当它不适合并且需要额外的页面时,我有一个奇怪的行为: 它不在第二个页面中添加元素,而是只添加一行,页面的其余部分为空。 然后在第3页我有另一个元素,其余的是空白,然后是第4页,第5页等等 以下是与此部分对应的代码:Node.js pdfkit节点,第2页的每页一个元素,node.js,pdfkit,node-pdfkit,Node.js,Pdfkit,Node Pdfkit,Im使用pdfkit生成pdf发票。 当我所有的内容都放在一个页面上时,我就没有问题了 然而,当它不适合并且需要额外的页面时,我有一个奇怪的行为: 它不在第二个页面中添加元素,而是只添加一行,页面的其余部分为空。 然后在第3页我有另一个元素,其余的是空白,然后是第4页,第5页等等 以下是与此部分对应的代码: for (let i = 0; i < data.items.length; i++) { const item = data.items[i]; th
for (let i = 0; i < data.items.length; i++) {
const item = data.items[i];
this.itemPositionY = this.itemPositionY + 20;
if (item.bio) this.containBioProduct = true;
let itemName = item.bio ? `${item.item}*` : item.item;
this.generateTableRow(
doc,
this.itemPositionY,
itemName,
"",
this.formatCurrency(item.itemPriceDf.toFixed(2)),
item.quantity,
this.formatCurrency(item.itemPriceTotalDf.toFixed(2))
);
this.generateHr(doc, this.itemPositionY + 15);
}
for(设i=0;i
基本上我只是迭代一系列产品。对于每条线,我的Y位置有+20
谢谢你的帮助
如果有人遇到此问题,这里有一个解决方案: 在代码中我知道可以生成额外页面的任何地方,我添加了以下内容:
if (this.position > 680) {
doc.addPage();
this.position = 50;
}
它允许您控制新页面的生成(而不是pdfkit自动生成潜在问题)
您只需要从“this.position”的初始化开始跟踪位置。
这样,每当它比Y位置优越时(在我的例子中是680,它比带有pdfkit的页面小一点),你只需执行“doc.addPage()”,它将创建另一个页面,然后你重新初始化你的位置到新页面的开头。嘿@arnaud,你有解决这个问题的方法吗??请和我分享tooHey@Sanjaysinzala,迟做总比不做好。。在下面检查我的答案