gpt4 book ai didi

node.js - 使用 pdf2swf 的 NodeJS 生成和执行

转载 作者:太空宇宙 更新时间:2023-11-03 23:10:52 24 4
gpt4 key购买 nike

我希望有人可以帮助解决这个问题,因为我自己没有解决这个问题。

我编译了最新版本的 pdf2swf,一切工作正常,除了当我想将它用作 NodeJS 中生成的 child_process 时。

当我使用与 exec 相同的命令时,它会再次工作。提供一些代码示例:

// convert a pdf to swf using exec (works)
var tmpSwfLocation = docsDir+'/Paper.pdf.swf';
var pdf2swf = cp.exec('pdf2swf '+tmpPDFLocation+' -o '+tmpSwfLocation+' -G -v -f -T 9 -t -j '+quality+' -s subpixels='+resolution+' -s storeallcharacters -s poly2bitmap', function(err, stdout, stderr){
console.log(stdout);
console.log(stderr);
var end = Date.now();
console.log('pdf2swf: SWF created in '+((end-start) /1000)+' seconds');
});

// convert a pdf to swf (does not work)
var tmpSwfLocation = docsDir+'/Paper.pdf.swf';
var pdf2swf = cp.spawn('pdf2swf', ['-G','-v','-f','-T 9', '-t', '-j '+quality,'-s subpixels='+resolution,'-s storeallcharacters', '-s poly2bitmap',tmpPDFLocation, '-o '+tmpSwfLocation],{setsid:true});
pdf2swf.stdout.on('data',function(output){
console.log("pdf2swf:"+output)
});
pdf2swf.stderr.on('data',function(output){
console.log("pdf2swf ERROR:"+output);
});
pdf2swf.stdout.on('end', function(output){
var end = Date.now();
console.log('pdf2swf: SWF created in '+((end-start) /1000)+' seconds');
});

当 child_process 尝试将数据写入文件时,生成进程在最后中断:

pdf2swf:NOTICE  Writing SWF file  /home/bitnami/flipdoc/ec2-instances/worker/pdf_test/test_directory/test-Testfile_31MB_26Pages.pdf_0/docs/Paper.pdf.swf
pdf2swf:FATAL Could not create " /home/bitnami/flipdoc/ec2-instances/worker/pdf_test/test_directory/test-Testfile_31MB_26Pages.pdf_0/docs/Paper.pdf.swf".

使用 exec,进程成功完成

pdf2swf:NOTICE  Writing SWF file  /home/bitnami/flipdoc/ec2-instances/worker/pdf_test/test_directory/test-Testfile_31MB_26Pages.pdf_0/docs/Paper.pdf.swf

和一个现有文件。

附加信息:在整个过程之前,我对整个“test_directory”执行递归 chmod 777。

问候

最佳答案

我自己解决了...永远不要(甚至不去想它...)在生成过程的参数中使用空格。如果您有一个 param=value 参数,可以在其间使用空格,只需将它们与其他每个参数一起排列在数组中即可。

上面的spawn源代码现在看起来像这样:

var pdf2swf = cp.spawn('pdf2swf', [tmpPDFLocation, '-o',tmpSwfLocation,'-G','-vvv','-f','-T','9', '-t', '-j',quality,'-s','subpixels='+resolution,'-s','storeallcharacters', '-s','poly2bitmap']);

关于node.js - 使用 pdf2swf 的 NodeJS 生成和执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12076310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com