2016-07-18 5 views
4

pdf-merge는 pdf 파일을 병합하기위한 API를 제공하지만 버퍼 또는 스트림을 병합하려고하면 부족합니다. 표준 방식이나 패키지 (Buffer.concat, stream-concat, buffer-concat)를 통해 이러한 버퍼를 병합하려고하면 병합 된 결과 대신 마지막 스트림 만 포함됩니다. 보인다으로nodejs : pdf streams buffers 병합

은, 더 많은 사람들이이 문제를 발견,하지만 솔루션 (예 : 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

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); 
    });