2012-11-19 4 views
1

PrintDialog 클래스에서 인쇄 옵션을 선택한 후 여러 문서를 프린터로 직접 보내려고합니다.

선택한 papersource를 검색해야합니다. 유감스럽게도 필자는 선택한 모든 것이 아니라 프린터에서 모든 출처를 찾을 수 있습니다.PrintDialog selected papersource

CrystalDecisions.CrystalReports.Engine.ReportDocument document; 

//... 

PrintDialog pDialog = new PrintDialog(); 
pDialog.ShowDialog(); 

document.PrintOptions.PrinterName = pDialog.PrinterSettings.PrinterName; //OK 

//Here I need to set the papersource 
//document.PrintOptions.PaperSource = ??? 

document.printToPrinter(pDialog.PrinterSettings.Copies, false, 0, 0) 

나는이 작업을 수행 할 좋은 객체를 사용하고 있습니까 : 여기

은 (버전 단축) 내 코드의 샘플입니다?

참고 : 나는 한스 옆모습 코멘트 내 질문에 대한 답을 발견 창

+0

PageSetupDialog를 "이 프린터 옵션"을 제공하지 않습니다, 그 문서 속성은 않습니다. 먼저 프린터를 선택하고 다음 페이지 설정을 선택하십시오. –

+0

문제는 'PrintDialog'창에서 papersource를 선택할 수 있지만 코드에서 가져 와서 내 문서로 다시 보낼 수 없다는 것입니다. –

+0

PrintDialog.Document 속성을 할당해야합니다. –

답변

0

7을 사용하고 있기 때문에 PageSetupDialog 나에게 프린터 옵션을 제공하지 않습니다. 고마워.

PrintDialog에서 PaperSource을 얻으려면 가짜 PrintDocument을 설정해야합니다.

PrintDialog은 papersource를 직접 보관하지 않습니다. 대신 PrintDialog.Document.DefaultPageSettings.PaperSource을 설정합니다. 여기

가 어떻게 생겼는지입니다 :

CrystalDecisions.CrystalReports.Engine.ReportDocument document; 

PrintDialog pDialog = new PrintDialog(); 
pDialog.Document = new System.Drawing.Printing.PrintDocument(); 
pDialog.ShowDialog(); 

document.PrintOptions.PrinterName = pDialog.PrinterSettings.PrinterName; 
document.PrintOptions.CustomPaperSource = pDialog.Document.DefaultPageSettings.PaperSource; 

document.printToPrinter(pDialog.PrinterSettings.Copies, false, 0, 0); 
+0

downvote에 대한 설명은 "실제"해결책을 찾는 데 도움이 될 수 있습니다. –

관련 문제