nodejs:合并pdf流\缓冲区

Ore*_*rtz 4 pdf buffer pdf-generation stream node.js

pdf-merge提供了一个用于合并pdf文件的api,但是在尝试合并缓冲区或流时却显得不足。当尝试以标准方式或通过包(aka Buffer.concat,stream-concat,buffer-concat)合并这些缓冲区时,结果仅包括最后一个流,而不是合并的结果。

看来,更多的人遇到了这个问题,但是没有提供解决方案(例如:NodeJS:使用通过读取文件获得的缓冲区将两个PDF文件合并为一个

我猜这是由于pdf文件的唯一表示。

我也尝试了pdfkit的addContent(buffer),但是结果是一个空文件,显然它不受支持(https://github.com/devongovett/pdfkit/issues/417)。

有没有人遇到这个问题并使它起作用?我们必须使用流解决性能问题(因此不能通过文件进行缓解)。

谢谢。

cie*_*nki 5

我发现node-pdftk这很有用。通过简单地传递一个缓冲区数组as input,然后立即将其转换为output,您应该获得一组组合的PDF。

npm i node-pdftk

const pdfs = [...] // array of PDF buffers

pdftk
  .input(pdfs)
  .output()
  .then(buf => {
    res.type('application/pdf');
    res.send(buf);
  });
Run Code Online (Sandbox Code Playgroud)