如何解决PDFKIT溢出数据进入每一行的新页面
我有一个函数,可以根据数组生成一行数据。第一页工作正常,但是一旦数据在doc.text("exmaple",70,560)
附近溢出,则将Y坐标设置为560,它将转到下一页。但除此之外,下一次迭代应导致doc.text("example2,600)
进入下一页的第三页和第四页,依此类推。此行为是意外的,因为它应该在第二页中创建一个新行。完整的代码在下面列出。我不是JS和node的专家,所以也许犯了一些愚蠢的错误。如上所述,问题从数组的第10个项开始或y坐标为560
const doc = new PDFDocument({
layout: 'landscape'
});
doc.pipe(fs.createWriteStream('output.pdf'));
const productCodes = ['JD100979758','JD4010069','JD5879085','JD7515824','JD7517614','JD100979758','JD7517614']
function generateDexTable(doc,product){
let i,invoiceTableTop= 160;
for(let i = 0;i<product.length;i++){
const item = product[i]
const position = invoiceTableTop+(i*40);
doc.text(item,position)
}
}
generateDexTable(doc,productCodes)
我确实创建了一个冗余阵列来模拟此错误。这将创建26页的pdf输出,而预期的输出要少得多。我实质上想通过此工具包创建一种发票。
谢谢
解决方法
我认为您可以通过使用文本块和moveDown()
的默认高度来简化此操作:
function generateDexTable(doc,product) {
for (let i = 0; i < product.length; i++) {
const item = product[i];
doc.text(item);
doc.moveDown(3); // you can adjust this to get the desired margins between text blocks
}
doc.end();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。