我有一个WPF应用程序,并且使用外部库来生成文档。该库将文档返回为System.Drawing.Printing.PrintDocument。如何在WPF中打印此文档?我可以直接使用Print()方法,但是我需要允许用户选择打印机和设置。如果使用WPF PrintDocument对话框,则无法像在WinForms dialog.Document中那样为它设置文档。有没有一种方法可以将旧的PrintDocument转换为某些WPF友好形式?

WinForms方式:

// 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中打开WinForms对话框,但这是不可能的。对话框只是不显示。

谢谢你的帮助。

最佳答案

我找到了答案。您必须将UseDialogEx对话框属性设置为true

关于c# - 在WPF中使用System.Drawing.Printing.PrintDocument,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1657737/

10-12 04:43