Partager via


Comment : appeler une boîte de dialogue Imprimer

Pour fournir la possibilité d’imprimer à partir de votre application, vous pouvez simplement créer et ouvrir un PrintDialog objet.

Exemple

Le PrintDialog contrôle fournit un point d’entrée unique pour l’interface utilisateur, la configuration et l’envoi de travaux XPS. Le contrôle est facile à utiliser et peut être instancié à l’aide du balisage ou du code XAML (Extensible Application Markup Language). L’exemple suivant montre comment instancier et ouvrir le contrôle dans le code et comment l’imprimer à partir de celui-ci. Il montre également comment s’assurer que la boîte de dialogue donnera à l’utilisateur la possibilité de définir une plage spécifique de pages. L’exemple de code suppose qu’il existe un fichier FixedDocumentSequence.xps à la racine du lecteur 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

Une fois la boîte de dialogue ouverte, les utilisateurs pourront choisir parmi les imprimantes installées sur leur ordinateur. Ils auront également la possibilité de sélectionner l’enregistreur de documents Microsoft XPS pour créer un fichier XPS (XML Paper Specification) au lieu d’imprimer.

Remarque

Le System.Windows.Controls.PrintDialog contrôle de WPF, qui est abordé dans cette rubrique, ne doit pas être confondu avec le System.Windows.Forms.PrintDialog composant de Windows Forms.

Strictement parlant, vous pouvez utiliser la PrintDocument méthode sans jamais ouvrir le dialogue. Dans ce sens, le contrôle peut être utilisé comme composant d’impression invisible. Mais pour des raisons de performances, il serait préférable d’utiliser la AddJob méthode ou l’une des nombreuses Write et WriteAsync méthodes du XpsDocumentWriter. Pour plus d’informations, consultez Imprimer par programmation des fichiers XPS.

Voir aussi