나는이 문제를 해결할 수있는 사람이 있기를 바랍니다.nodejs 'spawn 및 exec pdf2swf 사용
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".
이 프로세스가 성공적으로 확정
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을 실행합니다.
는
'setsid'는'spawn'에 대한 유효한 옵션이 나타나지 않는다. – ebohlman
죄송합니다. setsid가 여전히 유효한 옵션 인 노드 0.6.18을 사용하고 있다는 것을 잊어 버렸습니다. – nnikpour