【问题标题】:How to fix repeating canvas.toBuffer or canvas.createPdfStream content如何修复重复的 canvas.toBuffer 或 canvas.createPdfStream 内容
【发布时间】:2019-09-26 16:04:39
【问题描述】:

我在循环中使用 canvas.toBuffer 为不同的内容生成 pdf,但所有生成的 pdf 都具有相同的内容。下面是我正在使用的循环的 sn-p。

for (const d of data) {
    context.clearRect(0, 0, imageWidth, imageHeight);
    context.drawImage(image, 0, 0, imageWidth, imageHeight);
    context.fillText(d.name.toUpperCase(), 1685, 1556);
    fs.writeFileSync(`./assets/certs/${d.email}.pdf`,canvas.toBuffer());
}

data 的类型为Array<{name:String, email:String}>。 该名称应该在图像上打印每个用户的名称,但结果生成的所有 pdf 文件都只有第一个用户的名称。

我尝试从画布创建 ReadStream,但最终遇到了同样的问题。是我做错了什么还是我错过了什么?

【问题讨论】:

    标签: node-canvas


    【解决方案1】:

    这是节点画布中的一个错误。调用 toBuffer() (https://github.com/Automattic/node-canvas/issues/1195) 后,无法重复使用 PDF 或 SVG 画布。

    作为一种变通方法,您可以在循环的每次迭代中创建一个新画布。

    【讨论】:

      猜你喜欢
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-24
      • 2018-10-13
      • 1970-01-01
      • 2020-05-06
      相关资源
      最近更新 更多