Udostępnij za pośrednictwem


Jak wywołać okno dialogowe drukowania

Aby umożliwić drukowanie z aplikacji, możesz po prostu utworzyć i otworzyć PrintDialog obiekt.

Przykład

Kontrolka PrintDialog zapewnia pojedynczy punkt wejścia dla interfejsu użytkownika, konfiguracji i przesyłania zadań XPS. Kontrolka jest łatwa w użyciu i można utworzyć wystąpienie za pomocą znaczników lub kodu extensible Application Markup Language (XAML). W poniższym przykładzie pokazano, jak utworzyć wystąpienie i otworzyć kontrolkę w kodzie oraz jak go wydrukować. Pokazuje również, jak upewnić się, że okno dialogowe da użytkownikowi możliwość ustawienia określonego zakresu stron. Przykładowy kod zakłada, że w katalogu głównym dysku C: znajduje się plik FixedDocumentSequence.xps.

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

Po otwarciu okna dialogowego użytkownicy będą mogli wybierać z drukarek zainstalowanych na komputerze. Będą one również miały możliwość wybrania składnika zapisywania dokumentów microsoft XPS w celu utworzenia pliku SPECYFIKACJI PAPIERU XML (XPS) zamiast drukowania.

Uwaga

Kontrolka System.Windows.Controls.PrintDialog WPF, która została omówiona w tym temacie, nie powinna być mylona ze składnikiem System.Windows.Forms.PrintDialog windows Forms.

Mówiąc ściśle, możesz użyć PrintDocument metody bez otwierania okna dialogowego. W tym sensie kontrolka może być używana jako niezaświetniony składnik drukowania. Jednak ze względu na wydajność lepiej byłoby użyć AddJob metody lub jednej z wielu Write metod i WriteAsync metody XpsDocumentWriter. Aby uzyskać więcej informacji na ten temat, zobacz Programowe drukowanie plików XPS.

Zobacz też