글쎄, 내 목표는 사용자 확인을 요구하지 않고 PDF 파일을 인쇄하는 것입니다.
사용자가 특정 PDF 판독기 (예 : Adobe Acrobat 또는 Foxit)를 사용하도록 강제 할 수 없으며 사용자 개입없이 파일을 인쇄해야합니다.
내 현재 코드는 다음과 같습니다 :PDF 인쇄 및 프로세스 오류 출력 읽기
String strFile = "pdf_file.pdf";
String strPrinter = "Printer Name";
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = strFile;
p.StartInfo.Arguments = strPrinter;
p.StartInfo.Verb = "PrintTo";
p.StartInfo.CreateNoWindow = true;
p.Start();
p.CloseMainWindow();
나는 그것이 종료하지 않으면 프로세스를 종료하는 몇 가지 코드를 가지고 있지만, 지금은 중요하지 않습니다.
이 코드는 대부분 잘 작동하지만 프로세스에서 발생하는 오류 메시지를 가져올 수 없습니다.
오류가 프로세스 "p"에서 발생하기 때문에 try catch 블록은이 경우 도움이되지 않습니다. 주 프로세스에서는 발생하지 않습니다.
나는 다음과 같은 설정해야 오류를 복구하는 것을 발견 그물 검색 :
p.StartInfo.RedirectStandardError = true;
p.StartInfo.UseShellExecute = false;
// Start process, kill it, etc...
String s = p.StandardError.ReadToEnd();
을하지만,이 코드를 적용하는 나에게 또 다른 오류가 있습니다 : 파일이 올바른 Win32 응용 프로그램이 아닙니다.
분명히 내가 반대하는 파일은 EXE가 아닌 PDF 파일입니다.
누구든지 프로세스에서 발생하는 오류를 복구하는 다른 방법을 알고 있습니까?
프린터 등을 찾을 수 없습니다.
먼저 실행 파일 인 것처럼 PDF 파일을 시작하려고합니다. PDF는 실행 가능하지 않습니다. – ElGavilan
정확히 내가 말한 것은 "분명히 내가 반대하는 파일은 EXE가 아닌 PDF 파일입니다." 'p.StartInfo.UseShellExecute = true; 일 때 잘 작동합니다. – Dinei
이것 좀보세요 : http://stackoverflow.com/questions/21462247/printing-pdf-using-ghostscript-net-dpi-printing-issue – HABJAN