pdfkit nodejs,第 2 页中的每页一个元素

编程入门 行业动态 更新时间:2024-09-28 07:24:01

pdfkit nodejs,第 2 页中的<a href=https://www.elefans.com/category/jswz/34/1578159.html style=每页一个元素"/>

pdfkit nodejs,第 2 页中的每页一个元素

我使用 pdfkit 生成 pdf 发票。 当我的所有内容都适合一页时,我就没有问题了。

但是,当它不适合并且需要额外的页面时,我有一个奇怪的行为: 它没有添加第二页中的元素,而是只添加一行,页面的其余部分为空白。 然后在第三页上我有另一个元素,其余的为空白,然后是第四页,第五页等等。

这部分对应的代码如下:

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);
    }

基本上我只是迭代一系列产品。对于每一行,我的 Y 位置都有 +20。

感谢您的帮助。

回答如下:

如果有人遇到这个问题,这里有一个解决方案:

在代码中的每个地方,我都知道可以生成额外的页面,我添加以下内容:

if (this.position > 680) {
   doc.addPage();
   this.position = 50;
}

它允许您控制新页面的生成(而不是 pdfkit 自动执行此操作,但存在潜在问题)

您只需要从“this.position”的初始化开始跟踪位置即可。 这样,每当它比 Y 位置优越时(在我的例子中是 680,它比 pdfkit 的页面要少一些),你只需执行“doc.addPage()”,这将创建另一个页面,然后重新初始化你的位置到新页面的开头。

更多推荐

pdfkit nodejs,第 2 页中的每页一个元素

本文发布于:2024-05-31 07:07:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1771401.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:每页   元素   pdfkit   nodejs

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!