我想从pdfutils将文档管道传输到http POST。



所以,正如你在下面看到的,我正在为名为pdfutils的节点使用npm模块。它允许我将多页pdf文件分割成单页文档。我计划将这些文档存储在一个couch数据库中。我在这里的主要问题是对javascript的异步本质缺乏理解。我已经纠结了3天了,完全被难住了。

pdfutils的作者提到用管道或某种类型的读流替换toFile(filePath),但没有示例我非常困惑。我只是不明白管道数据是如何在node.js中工作的。

我的目标是将生成的3个pdf文件中的每一个管道化为3个单独的http调用,以便提交给couchDB。我知道如何提交,只是不知道如何管道输出结果并触发http事件。

'Var pdfutils = require('pdfutils').pdfutils;

// This splits one file into separate pages
pdfutils(req.files.file.path, function(err, doc) {
  for ( var i=0 ; i<doc.length; i++) {
    var document = JSON.parse(req.body.document);
    var page = i+1;
    var filePath = 'app/images/'+ document.id + '_' + page + '.pdf';
    // Write the files to disk (but I'd rather pipe to an http call)
    doc[i].asPDF().toFile(filePath);
  }

"

您需要使用流事件

var converter = doc[0].asPNG({ maxWidth: 200, maxHeight: 200}),
    data = new Buffer(0);
converter.on('data', Meteor.bindEnvironment(function( chunk ){
    data = Buffer.concat([ data , chunk ]);
}));
converter.on('end', Meteor.bindEnvironment(function(){
   //Send the buffer to AWS or other service
})

相关内容

  • 没有找到相关文章

最新更新