在保存pdf文件之后,我需要做一些家务管理:
docx2pdf(doc, function (pdf) {
console.log("saving file");
var pdfFile = fs.createWriteStream("./test2.pdf");
pdf.on('finish',function(){
console.log("Finished");
process.exit();
}).pipe(pdfFile);
pdf.end();
console.log("After save");
}, true, true);但是第二个嵌套函数中的代码从未启动。pdf是pdfkit库中的对象。我怎么才能修好它?
UPD:这种方法也不起作用:
docx2pdf(doc, function (pdf) {
console.log("saving file");
var pdfFile = fs.createWriteStream("./test2.pdf");
pdfFile.on('finish',function(){
console.log("Finished");
process.exit();
});
pdf.pipe(pdfFile);
//pdf.end();
console.log("After save");
}, true, true);发布于 2015-09-04 06:42:32
您需要捕获管道对象上的事件finish,而不是pdf对象:
console.log("saving file");
pdf
.pipe( fs.createWriteStream("./test2.pdf") )
.on( 'finish', function(){
console.log("Finished");
});
pdf.end();
console.log("After save");发布于 2015-09-06 12:04:47
如果pdf是一个适当的NodeJS流,您可以简单地将其输送到写流中并完成。如果您想在保存文件后退出程序,可以在“关闭”中完成此操作。注意:没有“保存后”状态(因为您结束了进程)。在保存文件之前调用代码中的console.log("After save")行!
docx2pdf(doc, function (pdf) {
console.log("saving file");
var pdfFile = fs.createWriteStream("./test2.pdf");
pdf.pipe(pdfFile);
pdfFile.on('close',function(){
console.log("Finished");
process.exit();
});
}, true, true);发布于 2015-08-23 13:50:13
pdf的意思是从“未写入”中读取。这意味着您应该将它作为一个可读的流来处理,所以请听finish on pdfFile,然后删除pdf.end()。
https://stackoverflow.com/questions/32166586
复制相似问题