2009-11-01 6 views
3

WPF 응용 프로그램이 있고 문서를 생성하는 데 외부 라이브러리를 사용합니다. 이 라이브러리는 System.Drawing.Printing.PrintDocument로 문서를 반환합니다. WPF로이 문서를 인쇄하려면 어떻게해야합니까? 직접 Print() 메서드를 사용할 수는 있지만 사용자가 프린터 및 설정을 선택할 수 있도록해야합니다. WPF PrintDocument 대화 상자를 사용하면 WinForms 대화 상자에서와 같이 내 문서를 설정할 수 없습니다. 이전 PrintDocument를 WPF 형식으로 변환하는 방법이 있습니까?WPF에서 System.Drawing.Printing.PrintDocument 사용

윈폼 방법 :

// get document for printing 
PrintDocument document = exporter.GetPrintDocument(); 
System.Windows.Forms.PrintDialog dialog = new System.Windows.Forms.PrintDialog(); 
dialog.Document = document; 
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
{ 
    document.Print(); 
} 

WPF 방법 :

System.Windows.Controls.PrintDialog dialog = new System.Windows.Controls.PrintDialog(); 
if (dialog.ShowDialog() == true) 
{ 
    // how to print old PrintDocument??? 
    dialog.PrintDocument(...); 
} 

나는 또한 WPF에서 대화 윈폼을 열려고하지만 그것은 불가능하다. 대화 상자가 표시되지 않습니다.

도움 주셔서 감사합니다.

답변

1

답변을 찾았습니다. UseDialogEx 대화 상자 속성을 true으로 설정해야합니다.

+3

코드 샘플이 있습니까? –

+2

작은 코드 샘플을 추가 할 수 있습니까? –

+1

이 사람은 WinForms PrintDialog를 사용하고 WPF에서 작동하도록 UseDialogEx를 설정하는 것을 언급합니다. – theycallmemorty

-1
MessageBox.Show(printDialog1.PrinterSettings.PrinterName); 
printDialog1.PrinterSettings.PrintFileName = "A.txt"; 
MessageBox.Show(printDialog1.PrinterSettings.PrintFileName); 

printDialog1.ShowDialog(); 
printDocument1.DocumentName = "A.txt"; 
if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
{ 
    printDocument1.Print(); 
} 
+1

WPF를 사용하는 경우에는 작동하지 않습니다. –

관련 문제