내 문제는 다음과 같습니다. ghostscript를 사용하여 일부 pdfs를 jpeg 파일로 변환 한 다음 실버 라이트 컨트롤로 렌더링합니다. 나는 사용하여 pdf 파일 변환 오전 :Ghostscript가 서버를 크래킹합니다.
public void PdfToJpg(string ghostScriptPath, string input, string output) {
timer1.Enabled = true;
//if the pdf has more than 1 file (ex. 3) then 3 jpeg files will be outputed
String ars = "-dNOPAUSE -sDEVICE=jpeg -r300 -o" + output + "-%d.jpeg " + input;
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = ars;
startInfo.FileName = ghostScriptPath;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
using (Process exeProcess = Process.Start(startInfo)) {
exeProcess.WaitForExit();
}
}
이 다음 세션에서 페이지 번호와 사전에 페이지 바이트 [], 사전을 저장하고 실버 활성화 된 서비스를 전송하고, aspx 페이지로 전송을 그 Silverlight 컨트롤 (Response.redirect (page.aspx) 포함)이 포함되어 있습니다. 모든 것이 잘 작동하지만 때로는 서버 (Cassini 또는 IIS)가 충돌합니다. 즉, 파일이 변환되지만 리디렉션이 발생하지 않습니다. 단순히 페이지가 로딩 상태로 유지됩니다. "최종 프로세스"를 사용하여 cassini를 닫거나 IIS 서버를 다시 시작해야 프로세스가 다시 작동합니다. 나는 비슷한 문제가 서비스와 함께 있다고 생각하지 않는다. 왜냐하면 나는 실버 라이트 애플리케이션에 바이트 단위의 오디오 파일을 보내고 모든 것이 제대로 작동하기 때문에 서버가 멈추지 않을 것이므로 고스트 스크립트 때문이라고 생각한다. ., 누군가가 혹평 아이디어. 또한 내가 elmah를 사용하고 오류가보고됩니다 ... 그리고 때 디버그에서 내가 클릭 이벤트를 입력하지 않는 프로세스의 다른 부분을 포함하는보기 버튼을 클릭하지만 변환이 완료됩니다 (아닌 리디렉션), 나는 그것이 가능한 방법을 모른다. .., 고마워. 난 내 코드를 변경 : 다음 인 UseShellExecute와 redirectoutput 서버가 가끔 '야생'을 진행하고 그렇지 않은 경우 주석 경우
using (Process convertProc = new Process()) {
convertProc.StartInfo.FileName = ghostScriptPath;
convertProc.StartInfo.Arguments = args;
//convertProc.StartInfo.UseShellExecute = false;
//convertProc.StartInfo.RedirectStandardOutput = true;
convertProc.StartInfo.CreateNoWindow = true;
convertProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
convertProc.Start();
ThreadedKill(convertProc.Id);
convertProc.PriorityClass = ProcessPriorityClass.Normal;
convertProc.WaitForExit();
}
하고, 코드가 완벽하게 실행되도록 확실히
가 UPDATE 고스트 스크립트와 뭔가 매번,하지만 고스트 스크립트 프로세스에서 창문이 나타납니다, 나는 그것을 원하지 않아요. 나타나지 않게하려면이 줄을 주석 처리하거나 useshellexecute를 true로 설정하고 때때로 redirectoutput을 주석 처리해야합니다. 내가 무엇을 할 수 있을지? 는 콘솔 응용 프로그램에 대한 gswin64c.exe 내 gswin64.exe을 변경하고 지금 창 난 ISN에 대해 얘기했다 : 어떤 redirectStandardOutput이며, 무엇을 만드는 ...,
UPDATE 2 ... MSDN에 이해 dind't 더 이상 보이지 않습니다. 어떤 코드는 -o
가 -dBATCH
및 -dNOPAUSE
을 의미하기 때문에 당신이 -dNOPAUSE
필요하지 않습니다,
이 문제를 해결하려면 오류에 대한 자세한 정보 (예 : 스택 추적 또는 적어도 Windows 오류 코드가있는 예외. 이벤트 로그에 기록되는 내용은 무엇입니까? –
이 문제는 예외이며 이벤트 뷰어에는 오류가 없습니다. TaskManager에서 정지가 발생할 때 gswin64.exe가 실행되고 있지 않습니다. – adi1989
GPL Ghostscript 9.06 (2012-08-08) gswin64.exe – adi1989