우리의 cgi 중 하나에서 Ghostscript를 호출하여 PDF 파일을 PNG 이미지로 변환해야합니다. 이 CGI는 요청의 인코딩 된 PDF 스트림은 다음Ghostscript에 CGI 요청을 사용하는 방법
my $PDF_ENCODED = $q->param('PDF_ENCODED'); my $PDF_DECODED = decode_base64($PDF_ENCODED);
처럼, 그것을 디코딩 가지고 있으며 '의 GS'명령을 호출하여 디스크에 PNG 이미지를 생성합니다.
제 문제는 gs 명령 줄에 $ PDF_DECODED를 파이프하는 법을 모르겠습니다. 시도했습니다.
system("$PDF_DECODED | gs -dNOPAUSE -q -r300 -sDEVICE=png16m -dBATCH -sOutputFile=/tmp/ghostscript/new-test.png-")
그러나 작동하지 않습니다.
감사합니다.
감사합니다. golimar 및 simbabque. 그것은과 협력 파일로 대신 데이터를 기록, 그들은 파일 인 것처럼 프로세스를 열고, 당신은 "파일"을 쓸 때 처리 할 수있는 펄
$SIG{PIPE} = 'IGNORE'; open(FH, "| gs -dNOPAUSE -q -r300 -sDEVICE=png16m -dBATCH -sOutputFile=/tmp/ghostscript/new-test.png -") or die "can't fork: $!"; print FH "$PDF_DECODED\n" or die "can't write: $!"; close FH or die "can't close: status=$?";
Ghostscript 라이브러리에 대한 API가 있습니다 : http://p3rl.org/GSAPI,'gs' 바이너리로 포팅하는 것보다 약간 효율적이고 약간 오류가 있습니다. – daxim
고스트 스크립트 라이브러리를 이용해 주셔서 감사합니다. – user200340