nodejs:合并pdf streams \ buffers

时间:2016-07-18 11:18:16

标签: node.js pdf stream pdf-generation buffer

pdf-merge为合并pdf文件提供了api,但在尝试合并缓冲区或流时却不尽如人意。 当尝试以标准方式或通过包(也称为Buffer.concat,stream-concat,buffer-concat)合并这些缓冲区时,结果仅包括最后一个流而不是合并结果。

看起来,更多的人遇到了这个问题,但没有提供解决方案(例如:NodeJS: Merge two PDF files into one using the buffer obtained by reading them

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

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

是否有人遇到此问题并使其有效? 我们必须使用流来解决性能问题(因此无法通过文件进行缓解)。

感谢。

1 个答案:

答案 0 :(得分:3)

我发现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);
  });