2014-11-24 10 views
2

C#의 PrinterSettings에 대한 질문이 있습니다. 바탕 화면 프린터에서 PrinterSettings.Copies를 2로 설정하면 2 개의 문서가 인쇄됩니다.PrinterSettings가 사본 수를 사용하지 않습니다.

그러나 Zebra GK420d Label printer에서 2로 설정하면 내가 정의한 사본 수가 프린터의 기본 사본 수만큼 덮어 쓰게됩니다. Zebra 프린터는 프린터 설정 (시작 -> 장치 및 프린터 -> 프린터 속성)에서 인쇄 매수를 정의 할 수있는 유일한 프린터입니다.

그러나 PrintDialog를 열고 거기에 사본 수를 2로 설정할 때. 하지만 프로그래밍 방식으로하면 작동하지 않습니다. 나는 다음과 같은 코드가이는 PrinterSettings 변수가 initiallized되고, 제대로 작동하고 PRINTERNAME은 내가 선택한 프린터로 설정되어

ps_Current = new PrinterSettings(); 
ps_Current.PrinterName = cbPrinters.Text; 

실행되는 형태를로드 할 때 프린터 설정 :

형태 : 여기 내 상황 . 그런 다음 복사 매수 아래에 다음과 같이 표시됩니다.

ps_Current.Copies = (short)seAantalKopieen.Value; 

이 방법은 올바로 작동합니다 (Zebra 프린터를 제외한 모든 프린터에서). 어떻게 든 Zebra 프린터는 코드를 사용하지 않고 기본 프린터 설정을 사용합니다.

나는이에 코드를 변경하는 경우 :

PrintDialog PD = new PrintDialog(); 
PD.PrinterSettings = ps_Current; 
PD.ShowDialog();  
ps_Current = PD.PrinterSettings; 

이 나에게 내가 프린터와 복사의 양을 선택할 수있는 PrintDialog 영상을 볼 수있게됩니다. 여기에서 Zebra 프린터를 선택하고 복사본을 2로 변경하면 작동합니다. 그러나 Windows PrintDialog를 사용하고 싶지 않습니다. 단지 내 대화 상자 만 있으면됩니다.

Printer: 
Source: 
Amount of copies: 

나는 작동하지 않습니다.

+2

지브라 지원은 어떨까요? –

+0

안녕 Mikko, 그걸 시도해 보자. –

+0

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

답변

2

PD.ShowDialog()으로 전화하면 사용자가 원하는 설정을 변경할 수 있습니다. 사용자가 확인을 클릭하여 문서를 인쇄하면 선택한 설정이 PD.PrinterSettings을 업데이트합니다.

PrintDialog PD = new PrintDialog(); 
PD.ShowDialog();  
ps_Current = PD.PrinterSettings; 
// Essentially you override what the user chose, which can be frustrating for the user. 
ps_Current.Copies = (short)seAantalKopieen.Value;