【问题标题】:Write downloaded image to pdfkit using nodejs使用nodejs将下载的图像写入pdfkit
【发布时间】:2015-02-20 14:20:04
【问题描述】:

我正在尝试使用对 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

知道如何解决这个问题吗?

【问题讨论】:

    标签: node.js request web-scraping fs node-pdfkit


    【解决方案1】:

    移动doc.end() 调用,使其位于处理“关闭”事件的函数内部。

    r.on('close', function() {
      doc.pipe(fs.createWriteStream('pdf/output.pdf'));     
      doc.image('images/0.jpeg');
      doc.end();   // <----- *put this here*
    });
    

    否则,您将在任何有机会写入文档之前关闭您的文档,因为请求调用(和后续管道)都是异步发生的。

    【讨论】:

      猜你喜欢
      • 2018-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      相关资源
      最近更新 更多