Comment appeler une boîte de dialogue d'impression
Pour fournir la possibilité d’imprimer à partir de votre application, vous pouvez simplement créer et ouvrir un objet PrintDialog.
Exemple
Le contrôle PrintDialog 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 le Microsoft XPS Document Writer pour créer un fichier XPS (XML Paper Specification) au lieu d’imprimer.
Note
Le contrôle System.Windows.Controls.PrintDialog de WPF, qui est abordé dans cette rubrique, ne doit pas être confondu avec le composant System.Windows.Forms.PrintDialog de Windows Forms.
Strictement parlant, vous pouvez utiliser la méthode PrintDocument sans jamais ouvrir la boîte de 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 méthode AddJob ou l’une des nombreuses méthodes Write et WriteAsync des XpsDocumentWriter. Pour plus d’informations, consultez Imprimer par programmation des fichiers XPS.
Voir aussi
- PrintDialog
- Documents dans WPF
- Vue d’ensemble de l’impression
- Microsoft XPS Document Writer
.NET Desktop feedback