Comment Imprimer un Document PDF avec une Boîte de Dialogue en C

This article was translated from English: Does it need improvement?
Translated
View the article in English

La boîte de dialogue d'impression est la fenêtre standard du système d'exploitation qui permet aux utilisateurs de choisir une imprimante, de définir le nombre de copies, de choisir une plage de pages et d'ajuster les options de papier avant l'impression. Pour les applications de bureau où les utilisateurs ont besoin de contrôler la façon et l'endroit où leurs documents sont imprimés, afficher cette boîte de dialogue est le comportement attendu.

IronPrint fournit une seule méthode — Printer.ShowPrintDialog() — qui affiche la boîte de dialogue d'impression native, applique les sélections de l'utilisateur et envoie le document à l'imprimante choisie. Nous installons un package NuGet et écrivons une ligne de code.

Démarrage rapide : Impression avec une boîte de dialogue

  1. Installez IronPrint via NuGet : Install-Package IronPrint
  2. Ajoutez using IronPrint; au fichier
  3. Appelez Printer.ShowPrintDialog("filepath") pour ouvrir la boîte de dialogue d'impression native
  4. (Facultatif) Passez un objet PrintSettings pour préconfigurer les valeurs par défaut de la boîte de dialogue
  5. L'utilisateur sélectionne l'imprimante, les copies et les options, puis clique sur Imprimer
  1. Installez IronPrint avec le Gestionnaire de Packages NuGet

    PM > Install-Package IronPrint
  2. Copiez et exécutez cet extrait de code.

    using IronPrint;
    
    // Display the print dialog and print the document
    Printer.ShowPrintDialog("document.pdf");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronPrint dans votre projet dès aujourd'hui avec un essai gratuit

    arrow pointer

Comment fonctionne la boîte de dialogue d'impression en C# ?

La méthode Printer.ShowPrintDialog() ouvre la boîte de dialogue d'impression native du système d'exploitation. L'utilisateur voit l'ensemble complet des options d'impression — sélection d'imprimante, nombre de copies, plage de pages, orientation et format de papier — et clique sur Imprimer pour envoyer le travail, ou Annuler pour fermer la boîte de dialogue sans imprimer.

Sous le capot, l'approche native .NET nécessite la création d'une instance de System.Windows.Forms.PrintDialog, la liaison à un PrintDocument, la gestion de l'événement PrintPage pour dessiner le contenu sur la surface graphique d'impression, la vérification de DialogResult, puis l'appel à PrintDocument.Print(). Cette configuration nécessite habituellement 15 à 25 lignes de code. Elle n'inclut pas non plus le rendu intégré de PDF ou d'images — imprimer un PDF via la boîte de dialogue native signifie d'abord analyser le PDF en pages dessinables, ce qui nécessite une autre bibliothèque.

IronPrint gère toute la chaîne en une seule appelle :

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-open-and-print.cs
using IronPrint;

// Open the dialog, let the user configure settings, and print
Printer.ShowPrintDialog("quarterly-report.pdf");
Imports IronPrint

' Open the dialog, let the user configure settings, and print
Printer.ShowPrintDialog("quarterly-report.pdf")
$vbLabelText   $csharpLabel

La méthode accepte un chemin de fichier comme string ou des données brutes de fichier comme byte[]. IronPrint détecte le format du document, le rend grâce au moteur approprié, et présente la boîte de dialogue. Lorsque l'utilisateur confirme, le document est imprimé avec les paramètres choisis. Le tutoriel d'impression de document décrit plus en détail l'ensemble du cycle de vie de l'impression.

Comment préconfigurer les paramètres de la boîte de dialogue ?

Nous pouvons définir des valeurs par défaut avant l'ouverture de la boîte de dialogue en créant un objet PrintSettings et en le passant en tant que deuxième paramètre. La boîte de dialogue s'ouvrira avec ces valeurs pré-sélectionnées, et l'utilisateur pourra les accepter telles quelles ou modifier n'importe quel paramètre.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-preconfigure-dialog-settings.cs
using IronPrint;

// Pre-configure defaults for the dialog
var settings = new PrintSettings
{
    PrinterName = "HP LaserJet Pro",
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300,
    NumberOfCopies = 2,
    Grayscale = false
};

// Open dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings);
Imports IronPrint

' Pre-configure defaults for the dialog
Dim settings As New PrintSettings With {
    .PrinterName = "HP LaserJet Pro",
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 300,
    .NumberOfCopies = 2,
    .Grayscale = False
}

' Open dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings)
$vbLabelText   $csharpLabel

Cela est utile lorsque l'application connaît à l'avance l'imprimante ou le format de papier probable. Par exemple, un système de point de vente qui imprime toujours des reçus sur une imprimante thermique spécifique peut définir PrinterName sur cet appareil. L'utilisateur a toujours la possibilité de le modifier dans la boîte de dialogue.

Pour découvrir quelles imprimantes sont disponibles sur le système, nous appelons Printer.GetPrinterNames(), qui retourne un List<string> de toutes les imprimantes installées. De façon similaire, Printer.GetPrinterTrays() retourne les bacs à papier disponibles pour une imprimante donnée.

La liste complète des propriétés configurables comprend PrinterName, PaperSize, PaperOrientation, Dpi, NumberOfCopies, Grayscale, PaperMargins, Flatten (pour les champs de formulaire PDF), et Tray. Le guide d'utilisation des paramètres d'impression couvre chaque propriété avec des exemples de code. Toute propriété non définie dans PrintSettings par défaut à la configuration standard de l'imprimante sélectionnée.

Comment afficher la boîte de dialogue de manière asynchrone ?

La méthode Printer.ShowPrintDialogAsync() retourne un Task, ce qui la rend compatible avec await. Cela empêche la boîte de dialogue de bloquer le thread d'interface utilisateur — essentiel pour WPF, MAUI et toute application où une interface figée crée une mauvaise expérience utilisateur.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-async.cs
using IronPrint;

// Non-blocking dialog — the UI remains responsive
await Printer.ShowPrintDialogAsync("report.pdf");
Imports IronPrint

' Non-blocking dialog — the UI remains responsive
Await Printer.ShowPrintDialogAsync("report.pdf")
$vbLabelText   $csharpLabel

ShowPrintDialogAsync() accepte les mêmes paramètres que la version synchrone : un chemin de fichier ou un tableau d'octets, ainsi qu'un objet PrintSettings optionnel. Le mode asynchrone suit le même Modèle Asynchrone Basé sur les Tâches utilisé dans tout le développement moderne .NET.

IronPrint fonctionne sur WinForms, WPF, MAUI et les applications console. L'apparence de la boîte de dialogue s'adapte à la plate-forme hôte et à la version du système d'exploitation, de sorte que l'utilisateur voit toujours la fenêtre d'impression native qu'il attend.

Quand dois-je utiliser une boîte de dialogue vs l'impression en silencieux ?

Le choix dépend de la nécessité pour l'utilisateur d'avoir le contrôle sur le travail d'impression.

Critères d'évaluation Impression avec boîte de dialogue Impression silencieuse
Interaction utilisateur L'utilisateur sélectionne l'imprimante, les copies, la plage de pages Sans interaction — imprimé immédiatement
Idéal pour Applications de bureau, impressions ponctuelles, fonctionnalités dédiées à l'utilisateur Tâches par lot, services en arrière-plan, applications de kiosque
Sélection de l'imprimante L'utilisateur choisit à partir de la boîte de dialogue Paramètre défini par programme via PrintSettings
Méthode IronPrint Printer.ShowPrintDialog() Printer.Print()
Variante asynchrone ShowPrintDialogAsync() PrintAsync()

Utilisez la boîte de dialogue lorsque les utilisateurs ont besoin de vérifier ou de modifier les paramètres avant l'impression — exportations de rapports, impressions de factures, ou tout scénario où la mauvaise imprimante peut causer une page gâchée. Utilisez l'impression en silencieux lorsque l'application contrôle l'ensemble du travail et qu'aucune décision humaine n'est nécessaire. Le tutoriel d'impression de document montre les deux approches côte à côte.

Quels formats de fichiers la boîte de dialogue d'impression supporte-t-elle ?

Printer.ShowPrintDialog() supporte les mêmes formats que l'impression en silencieux : PDF, PNG, TIFF, JPEG, GIF, HTML, et BMP. Nous passons le chemin du fichier quel que soit le format, et IronPrint gère le rendu et la communication avec le spouleur d'impression. Les données de fichier sous forme de byte[] sont également acceptées, ce qui est utile lorsque le document est généré en mémoire ou récupéré à partir d'une base de données.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-print-dialog-image-and-byte-array.cs
using IronPrint;

// Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png");

// Print from a byte array
byte[] reportData = File.ReadAllBytes("monthly-report.pdf");
Printer.ShowPrintDialog(reportData);
Imports IronPrint

' Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png")

' Print from a byte array
Dim reportData As Byte() = File.ReadAllBytes("monthly-report.pdf")
Printer.ShowPrintDialog(reportData)
$vbLabelText   $csharpLabel

La page d'exemples de code montre d'autres scénarios spécifiques au format. Pour les flux de travail spécifiques au PDF — générer un PDF et l'imprimer immédiatement — IronPDF s'associe naturellement à IronPrint. La comparaison IronPrint vs IronPDF explique quand utiliser chaque produit.

Prochaines étapes

L'impression avec une boîte de dialogue se résume à deux méthodes : Printer.ShowPrintDialog() pour les appels synchrones et Printer.ShowPrintDialogAsync() pour l'exécution non bloquante. Préconfigurez les valeurs par défaut avec PrintSettings et laissez l'utilisateur ajuster à partir de là. Les deux méthodes prennent en charge tous les formats de documents d'IronPrint et fonctionnent sur les projets WinForms, WPF, MAUI, et console.

Explorez les tutoriels IronPrint pour des explications complètes, la référence API de la classe Printer pour chaque méthode disponible, ou le guide d'utilisation des paramètres d'impression pour une configuration avancée. Le journal des modifications suit les améliorations récentes et les nouvelles fonctionnalités.

Commencez un essai gratuit de 30 jours pour tester l'impression avec dialogue dans un projet en direct — pas de carte de crédit requise. Lorsque vous êtes prêt à expédier, consultez les options de licence à partir de 749 $.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 38,930 | Version : 2026.4 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronPrint
exécuter un échantillon regarder votre document sortir de l'imprimante.