2014-04-17 3 views
0

글쎄, 내 목표는 사용자 확인을 요구하지 않고 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 파일입니다.

누구든지 프로세스에서 발생하는 오류를 복구하는 다른 방법을 알고 있습니까?
프린터 등을 찾을 수 없습니다.

+0

먼저 실행 파일 인 것처럼 PDF 파일을 시작하려고합니다. PDF는 실행 가능하지 않습니다. – ElGavilan

+0

정확히 내가 말한 것은 "분명히 내가 반대하는 파일은 EXE가 아닌 PDF 파일입니다." 'p.StartInfo.UseShellExecute = true; 일 때 잘 작동합니다. – Dinei

+0

이것 좀보세요 : http://stackoverflow.com/questions/21462247/printing-pdf-using-ghostscript-net-dpi-printing-issue – HABJAN

답변

1

제대로 이해했다면 클라이언트 컴퓨터에 설치된 기본 PDF 리더를 사용하여 PDF 파일을 인쇄하려고합니다.

이 코드는 실제로 .pdf 파일을 실행하려고합니다. C# PDF 라이브러리를 사용할 수는 있지만 원시 PDF 데이터를 프린터로 보내는 방법을 모르므로 PDF 명령 행 도구를 사용하여 프로젝트의 bin/Release 폴더에 넣으십시오. bin/Debug)를 실행 한 다음 명령 행을 사용하여 호출하십시오.

완전히 투명하고 PDF 리더 독립성을 원한다면 어쩌면 시도해야합니다. 명령 줄에서 명시 적으로 실행할 실행 무엇을 말해, 그래서 늘 Adobe Acrobat Reader가 화면에 팝업 확인하고 사용자는 여기

는 PDF 프린터의 예입니다 D = 흥분하지 않을 것이다 : http://pdfbox.apache.org/commandline/#printPDF

명령 줄은이 문제가 아닌 경우 java -jar pdfbox-app-x.y.z.jar PrintPDF [OPTIONS] <inputfile>

그것은 실행하는 자바를 필요로, 당신은 그것을 시도 할 수 있습니다. 네이티브 또는 .NET 관리 솔루션을 검색 할 수도 있습니다. 아이디어가 있다고 생각합니다.

행운을 빈다.

+1

글쎄 , 나는 사용자가 자신의 컴퓨터에 Java를 설치하도록 강요 할 수 없으므로 검색을 수행하고 [이 질문]을 발견했습니다 (http://stackoverflow.com/questions/2599925/how-to-print-pdf-on-default -network-printer-using-ghostscript-gswin32c-exe-she/2600189 # 2600189), [Ghostscript] (http://ghostscript.com/) 소프트웨어를 사용하여 자동 인쇄를 수행합니다. 이 소프트웨어를 사용해 볼 것이지만, 그것이 내 요구 사항을 충족시킬 것이라고 생각합니다. 고맙습니다. – Dinei