2012-05-24 6 views
1

내 응용 프로그램을 캔버스 (WPF, C#)에서 인쇄하지만 응용 프로그램이 기본 프린터를 할당해야합니다. 기본 프린터는 PC에 .ini 파일로 저장됩니다. 개념은 직원이 내 캔버스에서 인쇄 버튼을 클릭 할 수 있고 캔버스는 레이아웃을 생성 한 다음 프린터로 보낼 수 있다는 것입니다.WPF에서 캔버스 컨트롤에서 인쇄

그래서, 내가해야 할 2 가지 사항

  1. 설정 텍스트 파일 내에서 문자열을 기반으로 기본 프린터
  2. 인쇄 나 인쇄를 클릭하면

바인딩 후 단추를 누르면 캔버스가 원하는 레이아웃으로 업데이트되고 (데이터 바인딩을 통해) 작업이 프린터로 전송됩니다 (프린터가 작업을 감지하고 프린터 대기열에 표시됨). 프린터는 문서를 인쇄하지 않습니다. 거의 마치 내가 대기열에 올랐지 만 '시작'이라고 말한 적이 없습니다. 캐논은 다음 나에게 오류를 제공 내

인 (이 비록 빨간색 청문회를 할 수 있습니다) "또 다른 프린터가 프린터를 사용하고 있습니다. 다음과 같은 상태가 해당 컴퓨터의 사용 상태 ---입니다"

여기

있습니다 내가 사용하고있는 2 가지 주요 방법.

internal void AutoPrint() 
{ 
     string printerName = GetPrinterNameFromTextFile(); 
     PrintDialog dialog = new PrintDialog(); 
     getView(); //queries database, returns model and binds 

     Print(dialog, config.PrinterName); 
} 

internal void Print(PrintDialog dialog, string printerName)     
{     
     Canvas canvas = new Canvas(); 
     canvas = this.PrintCanvas; 

     PrintQueue queue = new LocalPrintServer().GetPrintQueue(printerName); 
     dialog.PrintQueue = queue; 
     Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(delegate() 
      { 
       dialog.PrintVisual(canvas, ""); 
      })); 
} 

답변

관련 문제