我正在尝试执行qpdf来将几个pdf文件合并为一个。简单地说,我的代码需要从node执行命令,但它总是返回一个错误,指出找不到pdf文件。这是最简单的代码(fileNames是一个数组...文件名):
command = "qpdf --empty --pages #{fileNames.join ' '} -- #{key}.pdf"
require('child_process').exec command, (err, stdout, stderr) ->
console.log err, stdout, stderr错误包含
{ [Error: Command failed: open 1fc31c0c61f1413bb273042fb9ac47aa_1.pdf: No such file or directory]
killed: false, code: 2, signal: null }pdf文件和node进程位于同一文件夹中,如果将命令复制并粘贴到终端中,则一切都会按预期运行。
qpdf语法为
qpdf --empty --pages file1.pdf file2.pdf fileN.pdf -- output.pdf起初我认为这可能是qpdf本身的一些问题,但当我尝试另一个程序(pdfmerge)时,同样的错误发生了。
这是关于child_process执行的事情吗?
发布于 2016-02-10 19:37:13
对于寻找答案的人来说,不仅要确保文件在那里,而且要确保文件在查找时已经完成。这就是我的例子,子进程完成了,但文件写入没有。
我找到的解决方案是将pdf流式传输到节点端的一个文件,并将部分pdf执行链接起来,这样它只会在完成文件写入时调用下一个pdf处理。
https://stackoverflow.com/questions/35206174
复制相似问题