PDFKit,nodeJS合并两个PDF文件

时间:2014-09-03 09:16:29

标签: node.js pdf pdf-generation node-pdfkit

有没有人有使用NodeJS的PDFKit经验。具体来说,我试图将2个PDF文档合并为1,但我似乎无法在合并后的格式内正确获取两个PDF的内容。

这就是我的所作所为:

var PDFDocument = require('pdfkit');
var fs = require('fs');

var doc = new PDFDocument();
var fileName = 'test.pdf';
doc.pipe(fs.createWriteStream(fileName));

var file1 = '1.pdf';
var file2 = '2.pdf';

var stream1 = fs.createReadStream(file1);
doc.text(stream1);

doc.addPage();
var stream2 = fs.createReadStream(file2);
doc.text(stream2);

doc.end();

输出,即test.pdf,应该包含一个pdf,其中包含具有相同格式的2 pdf的内容,但我只获得带有2个页面的test.pdf,每个页面都包含一个" [对象]"。我似乎无法找到如何在doc.text()函数中重定向流的内容。

对于我做错了什么,我应该怎么解决?

2 个答案:

答案 0 :(得分:0)

It is not possible to merge two PDF documents with pdfkit!

您可以为此使用pdftk Server。该程序提供了一个命令行界面,可以使用以下命令合并两个pdf:

pdftk 1.pdf 2.pdf cat output merged.pdf

答案 1 :(得分:-1)

var stream1 = fs.createReadStream(file1);

stream1.on('data', function(chunk) {
    console.log('got %d bytes of data', chunk.length);
    doc.contentStream(chunk);
});

stream1.on('end', function() {
    console.log('DONE with file1!!');
    doc.addPage();

    // now time to create and read from next stream.

});

您正在创建流并将流对象写入文件。相反,您应该编写从流中读取的数据。 但是,由于您正在阅读pdf标记并将其作为文本写入下一个文件,因此无法合并文件。