有没有人有使用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()函数中重定向流的内容。
对于我做错了什么,我应该怎么解决?
答案 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标记并将其作为文本写入下一个文件,因此无法合并文件。