Node.js:合并PDF流/缓冲区

5

pdf-merge提供了合并PDF文件的API,但是当尝试合并缓冲区或流时,它的功能有所不足。

当尝试使用标准方式或通过包(例如Buffer.concat、stream-concat、buffer-concat)合并这些缓冲区时,结果只包含最后一个流,而不是合并的结果。

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

我想这是由于PDF文件的独特表示方式所致。

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

有人遇到过这个问题并使它工作了吗? 由于性能问题,我们必须使用流(因此,通过文件进行缓解是不可行的选择)。

谢谢。


1个回答

5
我发现node-pdftk在这方面非常有用。只需将缓冲区数组作为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);
  });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接