У меня есть приложение 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(...);
}
Я также пытался открыть диалоговое окно WinForms в WPF, но это невозможно. Диалог просто не отображается.
Спасибо за любую помощь.