Поделиться через


Практическое руководство. Вызов диалогового окна печати

Чтобы обеспечить возможность печати из приложения, необходимо создать и открыть объект PrintDialog.

Пример

Элемент управления PrintDialog обеспечивает одну точку входа для UI, конфигурацию и отправку задания XPS. Элемент управления прост в использовании и может быть создан с помощью разметки Extensible Application Markup Language (XAML) или кода. В следующем примере показано создание экземпляра, открытие элемента управления в коде и печать из него. Также показано, как убедиться в том, что окно предоставит пользователям возможность установки конкретного диапазона страниц. В примере кода предполагается, что в корневой папке диска C: имеется файл FixedDocumentSequence.xps.

        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
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");
        }
    }

После открытия диалогового окна пользователи смогут выбрать один из принтеров, установленных на компьютере. Также они будут иметь возможность выбрать Средство записи XPS-документов (Microsoft) для создания файла XML Paper Specification (XPS) вместо печати.

ПримечаниеПримечание

Элемент управления System.Windows.Controls.PrintDialog WPF, рассматриваемый в этом разделе, не следует путать с компонентом System.Windows.Forms.PrintDialog Windows Forms.

Строго говоря, метод PrintDocument можно использовать даже без открытия диалогового окна. Из этого следует, что элемент управления может использоваться в качестве невидимого компонента печати. Однако, из соображений производительности лучше использовать метод AddJob или один из многих методов Write и WriteAsync XpsDocumentWriter. Дополнительные сведения см. в разделе Как печатать файлы XPS программным способом.

См. также

Ссылки

PrintDialog

Основные понятия

Документы в WPF

Общие сведения о печати

Другие ресурсы

Microsoft XPS Document Writer