Reputation: 87
I have a WPF application, and I use external library for generating documents. This library returns document as System.Drawing.Printing.PrintDocument
. How can I print this document in WPF? I can use Print()
method directly, but I need to allow user to select printer and settings. If I use WPF PrintDocument
dialog, I can't set my document to it as in WinForms dialog.Document
. Is there a way to convert old PrintDocument
to some WPF friendly form?
WinForms way:
// 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 way:
System.Windows.Controls.PrintDialog dialog = new System.Windows.Controls.PrintDialog();
if (dialog.ShowDialog() == true)
{
// how to print old PrintDocument???
dialog.PrintDocument(...);
}
I also tried to open WinForms dialog in WPF, but it is not possible. Dialog is just not shown.
Thanks for any help!
Upvotes: 5
Views: 14871
Reputation: 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();
}
Upvotes: -1
Reputation: 87
I found an answer. You have to set UseDialogEx
dialog property to true
.
Upvotes: 2