2010-06-29 6 views
5

.net을 사용하여 선택한 프린터에 pdf, word, excel 또는 text 파일과 같은 문서를 인쇄하고 싶습니다. 기본 프린터에서 이와 같은 인쇄 작업을 성공적으로 수행했습니다. 이제는 선택한 프린터에서 인쇄하는 것이 유일한 문제입니다.SELECTED 프린터에서 문서를 인쇄하는 방법

다음은 인쇄를위한 코드입니다.

public bool Print(string FilePath) 
    { 
     if (File.Exists(FilePath)) { 
      if (ShellExecute((System.IntPtr)1, "Print", FilePath, "", Directory.GetDirectoryRoot(FilePath), SW_SHOWNORMAL).ToInt32() <= 32) { 
       return false; 
      } else { 
       return true; 
      } 
     } else { 
      return false; 
     } 
    } 

답변

0

기본 프린터로 성공한 파일 형식은 무엇입니까?

"any"문서를 프린터로 보낼 수 없으므로 일반적으로 특정 파일 형식을 파일 형식을 읽을 수있는 응용 프로그램이 해석 한 다음에 해석 할 수있는 프린터 나 파일로 렌더링해야합니다 프린터.

대부분의 경우 포스트 스크립트 나 PDF로 렌더링 할 수 있으면 단일 해석기를 사용하여 인쇄 할 수 있습니다.

+0

파일을 인쇄 할 수 없습니다. 파일을 인쇄 할 수 없지만 파일의 소프트웨어가 설치되어 있으면 파일 유형을 지정하지 않고 인쇄 할 수 있습니다. 창만. – Thunder

+0

파일 인쇄 문제는 질문에 표시된대로 이미 해결되었습니다. 프린터 지정 문제 만 남아 있습니다. – Thunder

+0

안녕하세요, 확인, 특정 프린터를 지정하는 방법은 아니지만 인쇄하기 전에 기본 프린터를 변경하는 방법을 조사 할 가치가있을 것 같습니까? –

8
Process printJob = new Process(); 
printJob.StartInfo.FileName = path; 
printJob.StartInfo.UseShellExecute = true; 
printJob.StartInfo.Verb = "printto"; 
printJob.StartInfo.CreateNoWindow = true; 
printJob.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
printJob.StartInfo.Arguments = "\"" + printerAddress + "\"" + " " + printerExtraParameters; 
printJob.StartInfo.WorkingDirectory = Path.GetDirectoryName(path); 
printJob.Start(); 
+0

코드로 포맷했습니다. 응답 할 때 포맷 할 텍스트를 선택하고 입력 창 위의 "101010 .."버튼을 눌러도 똑같이 할 수 있습니다. 이 코드를 훨씬 쉽게 (읽기 : 가능) 볼 수있게합니다. :) –

관련 문제