在 NodeJs 上将图像缓冲区转换为 PDF 缓冲区

Convert Image Buffer to PDF Buffer on NodeJs

我和剧作家一起工作,我从屏幕截图中得到图像:

const image = await elementHandle.screenshot({ 
      fullPage : true,
      clip: {
        width: 1200,
        height: 1500,
      }
    });

它returns我是一张图片的缓冲区。所以我需要将图像缓冲区转换为 pdf 缓冲区。

已经使用了一些插件,但它保存了 pdf,我只需要它的缓冲区(不保存)。

喜欢这个插件:

 const pages = [
      image
   ]
imgToPDF(pages, 'A4').pipe(fs.createWriteStream('temp.pdf'));

有什么想法吗?

我是在 'canvas' 包的帮助下完成的: https://www.npmjs.com/package/canvas

import Canvas from 'canvas';

function imageToPdf(pdfBuffer) {
  const img = new Canvas.Image();
  img.src = pdfBuffer;
  const canvas = Canvas.createCanvas(img.width, img.height, 'pdf');
  const context = canvas.getContext('2d');
  context.drawImage(img, 0, 0, img.width, img.height);
  return canvas.toBuffer();
}