Как вызвать диалоговое окно печати
Чтобы предоставить возможность печати из приложения, можно просто создать и открыть объект PrintDialog.
Пример
Элемент управления PrintDialog предоставляет одну точку входа для пользовательского интерфейса, конфигурации и отправки заданий XPS. Элемент управления легко использовать и может быть создан с помощью разметки или кода расширяемого языка разметки приложений (XAML). В следующем примере показано, как создать экземпляр и открыть элемент управления в коде и как его распечатать. Кроме того, показано, как убедиться, что диалоговое окно предоставит пользователю возможность задать определенный диапазон страниц. В примере кода предполагается, что файл FixedDocumentSequence.xps находится в корневом каталоге диска C: .
private void InvokePrint(object sender, RoutedEventArgs e)
{
// Create the print dialog object and set options
PrintDialog pDialog = new PrintDialog();
pDialog.PageRangeSelection = PageRangeSelection.AllPages;
pDialog.UserPageRangeEnabled = true;
// Display the dialog. This returns true if the user presses the Print button.
Nullable<Boolean> print = pDialog.ShowDialog();
if (print == true)
{
XpsDocument xpsDocument = new XpsDocument("C:\\FixedDocumentSequence.xps", FileAccess.ReadWrite);
FixedDocumentSequence fixedDocSeq = xpsDocument.GetFixedDocumentSequence();
pDialog.PrintDocument(fixedDocSeq.DocumentPaginator, "Test print job");
}
}
Private Sub InvokePrint(ByVal sender As Object, ByVal e As RoutedEventArgs)
' Create the print dialog object and set options
Dim pDialog As New PrintDialog()
pDialog.PageRangeSelection = PageRangeSelection.AllPages
pDialog.UserPageRangeEnabled = True
' Display the dialog. This returns true if the user presses the Print button.
Dim print? As Boolean = pDialog.ShowDialog()
If print = True Then
Dim xpsDocument As New XpsDocument("C:\FixedDocumentSequence.xps", FileAccess.ReadWrite)
Dim fixedDocSeq As FixedDocumentSequence = xpsDocument.GetFixedDocumentSequence()
pDialog.PrintDocument(fixedDocSeq.DocumentPaginator, "Test print job")
End If
End Sub
После открытия диалогового окна пользователи смогут выбрать принтеры, установленные на своем компьютере. Кроме того, они смогут выбрать средство записи документов Microsoft XPS для создания файла спецификации XML-бумаги (XPS) вместо печати.
Заметка
Элемент управления System.Windows.Controls.PrintDialog в WPF, обсуждаемый в данном разделе, не следует путать с компонентом System.Windows.Forms.PrintDialog Windows Forms.
Строго говоря, можно использовать метод PrintDocument, не открывая диалоговое окно. В этом смысле элемент управления можно использовать в качестве невидимого компонента печати. Но по соображениям производительности лучше использовать метод AddJob или один из многих Write и WriteAsync методов XpsDocumentWriter. Дополнительные сведения об этом см. в разделе о программной печати файлов XPS .
См. также
.NET Desktop feedback