目前我正在开发node.js中的自动docx2pdf转换器。我正在使用unoconv。 当我在shell中运行此命令时效果非常好:
unoconv -f pdf "/opt/bitnami/apache2/htdocs/123.docx"
但是我想从node.js调用这个命令,有一些模块(unoconv包装器),但这些都不适用于我。所以我只想从上面调用这个命令。我尝试了node.js shell command execution的所有解决方案,但它们不起作用。
为什么这段代码片段能为我工作?
function run_cmd(cmd, args, callBack) {
var spawn = require('child_process').spawn;
var child = spawn(cmd, args);
var resp = "";
child.stdout.on('data', function(buffer) {
resp += buffer.toString()
});
child.stdout.on('end', function() {
callBack(resp)
});
} // ()
run_cmd("unoconv", ['-f pdf "/opt/bitnami/apache2/htdocs/123.docx"'], function(text) {
console.log(text)
});
即使我从pm2运行脚本作为服务或直接使用node命令,它也不会产生输出。我希望你能帮帮我! 提前致谢
答案 0 :(得分:0)
我怀疑你使用的命令只是创建了一个新的PDF文件和DOCX文件。如果你想在节点中拥有它,你可能应该尝试--stdout
flag。
像这样:
unoconv -f pdf --stdout" /opt/bitnami/apache2/htdocs/123.docx"