我在 node.js webapp 中使用 Prawn PDF 即时生成 PDF 并将其发送回用户。只要 PDF 文档中没有图像,它就可以正常工作。当我在 pdf 中包含图像(png 或 jpeg)时,生成的节点子进程永远不会收到“退出”消息。
在 shell 中运行时,相同的 ruby 脚本会按预期输出带有图像的 pdf。不知何故,图像数据在通过标准输出发送时似乎变得一团糟!我必须逃避它吗?
谢谢,马诺
var spawn = require('child_process').spawn;
var child = spawn('ruby', ['print_scripts/print.rb', doc_id]);
var pdf = '';
child.stdout.on('data', function(data){
if(data.toString() != 'ERROR'){
pdf += data;
}
});
child.on('exit', function(code){
res.setHeader('Content-Type', 'application/pdf');
if(code == 0){
res.send(pdf);
}
});