我正在尝试使用pdfkit请求从网站上下载和下载图像。
var request = require('request'),
PDFDocument = require('pdfkit'),
doc = new PDFDocument,
fs = require('fs');
var wstream = fs.createWriteStream('images/0.jpeg')
var r = request(IMAGEURL).pipe(wstream);
r.on('close', function() {
doc.pipe(fs.createWriteStream('pdf/output.pdf'));
doc.image('images/0.jpeg');
});
doc.end();
问题是,没有图像添加到pdf中: - (
这是我收到的错误消息:
events.js:72
throw er; // Unhandled 'error' event
^
Error: stream.push() after EOF
知道如何解决这个问题吗?
答案 0 :(得分:2)
移动doc.end()
调用,使其位于处理'close'事件的函数内。
r.on('close', function() {
doc.pipe(fs.createWriteStream('pdf/output.pdf'));
doc.image('images/0.jpeg');
doc.end(); // <----- *put this here*
});
否则,在任何有机会写入文档之前,您正在关闭文档,因为请求调用(以及后续管道)都是异步发生的。