Comment Spécifier le Nom de l'Imprimante pour Imprimer un Document en C

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

La classe PrintSettings d'IronPrint expose une propriété PrinterName qui dirige les travaux d'impression vers une imprimante spécifique. Nous attribuons le nom exact de l'imprimante cible sous forme de chaîne, passons l'objet configuré PrintSettings à l'une des méthodes d'impression d'IronPrint, et le document est envoyé à cette imprimante au lieu de l'imprimante par défaut du système.

Ce guide explique comment définir un nom d'imprimante, découvrir les imprimantes disponibles lors de l'exécution, et combiner la sélection de l'imprimante avec d'autres paramètres d'impression.

Démarrage rapide : spécifiez le nom de l'imprimante

  1. Installez IronPrint via NuGet : Install-Package IronPrint
  2. Ajoutez using IronPrint; au fichier
  3. Créez un objet PrintSettings
  4. Définissez PrinterName sur le nom exact de l'imprimante cible
  5. Passez les paramètres à Printer.Print() ou Printer.PrintAsync()
  1. Installez IronPrint avec le Gestionnaire de Packages NuGet

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

    using IronPrint;
    
    // Print a document to a specific printer
    Printer.Print("report.pdf", new PrintSettings
    {
        PrinterName = "HP LaserJet Pro M404"
    });
  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 spécifier un nom d'imprimante en C# ?

Nous spécifions l'imprimante cible en attribuant son nom à la propriété PrinterName sur un objet PrintSettings. Nous passons ensuite cet objet à Printer.Print.

:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-set-printer-name.cs
using IronPrint;

// Configure print settings with a target printer
PrintSettings settings = new PrintSettings();
settings.PrinterName = "Microsoft Print to PDF";

// Send the document to the specified printer
Printer.Print("invoice.pdf", settings);
Imports IronPrint

' Configure print settings with a target printer
Dim settings As New PrintSettings()
settings.PrinterName = "Microsoft Print to PDF"

' Send the document to the specified printer
Printer.Print("invoice.pdf", settings)
$vbLabelText   $csharpLabel

Nous instancions d'abord PrintSettings, qui s'initialise avec PrinterName = null — ce qui signifie l'imprimante par défaut du système d'exploitation. Nous remplaçons ensuite PrinterName par le nom exact en chaîne de l'imprimante cible. Lorsque nous appelons Printer.Print, IronPrint envoie le travail directement à la file d'attente de cette imprimante.

Deux détails critiques à garder à l'esprit. Tout d'abord, le nom de l'imprimante doit correspondre exactement à ce que rapporte le système d'exploitation — cette comparaison est sensible à la casse. Un décalage comme "hp laserjet" au lieu de "HP LaserJet" échouera silencieusement ou lancera une erreur. Deuxièmement, si l'utilisateur ouvre une boîte de dialogue d'impression via ShowPrintDialog, la sélection de la boîte de dialogue remplace tout PrinterName défini dans le code. C'est voulu — la boîte de dialogue donne le contrôle final à l'utilisateur.

Comment découvrir les imprimantes disponibles ?

Plutôt que de coder en dur les noms d'imprimantes, nous pouvons interroger le système à l'exécution en utilisant Printer.GetPrinterNames(). Cette méthode renvoie un List<string> contenant chaque imprimante installée sur la machine.

:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-discover-printers.cs
using IronPrint;

// Discover all installed printers
List<string> printers = Printer.GetPrinterNames();

foreach (string name in printers)
{
    Console.WriteLine(name);
}

// Use the first available printer
if (printers.Count > 0)
{
    Printer.Print("report.pdf", new PrintSettings
    {
        PrinterName = printers[0]
    });
}
Imports IronPrint

' Discover all installed printers
Dim printers As List(Of String) = Printer.GetPrinterNames()

For Each name As String In printers
    Console.WriteLine(name)
Next

' Use the first available printer
If printers.Count > 0 Then
    Printer.Print("report.pdf", New PrintSettings With {
        .PrinterName = printers(0)
    })
End If
$vbLabelText   $csharpLabel

Nous appelons GetPrinterNames() pour récupérer chaque imprimante que le système d'exploitation connaît — y compris les imprimantes locales, réseau, et virtuelles comme " Microsoft Print to PDF ". Nous iterons ensuite la liste et sélectionnons une imprimante par index, correspondance de nom, ou toute logique personnalisée requise par l'application.

Ce modèle de découverte-puis-impression est essentiel pour les applications déployées sur différentes machines. Coder en dur un nom d'imprimante fonctionne pour des scénarios sur une seule machine, mais les applications de production devraient interroger les imprimantes disponibles et soit laisser l'utilisateur choisir, soit en sélectionner une de manière programmatique en fonction de conventions de nommage. Pour un exemple de code dédié, voir l'exemple d'obtention de noms d'imprimantes.

Comment combiner le nom d'imprimante avec d'autres paramètres ?

La classe PrintSettings expose PrinterName aux côtés de propriétés pour la taille du papier, l'orientation, le DPI, les marges, le nombre de copies, et le nivellement. Nous configurons tout dans un seul objet.

:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-combined-settings.cs
using IronPrint;

// Build a fully configured print job targeting a specific printer
PrintSettings settings = new PrintSettings
{
    PrinterName = "Office Color Printer",
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300,
    NumberOfCopies = 2,
    PaperMargins = new Margins(15, 15, 15, 15),
    Grayscale = false
};

// Print a branded report to the color printer
Printer.Print("quarterly-report.pdf", settings);
Imports IronPrint

' Build a fully configured print job targeting a specific printer
Dim settings As New PrintSettings With {
    .PrinterName = "Office Color Printer",
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 300,
    .NumberOfCopies = 2,
    .PaperMargins = New Margins(15, 15, 15, 15),
    .Grayscale = False
}

' Print a branded report to the color printer
Printer.Print("quarterly-report.pdf", settings)
$vbLabelText   $csharpLabel

Nous utilisons la syntaxe d'initialisation d'objet pour la lisibilité. PrinterName dirige le travail vers l'"Imprimante couleur de bureau" tandis que les autres propriétés contrôlent le format de sortie. Dpi à 300 produit un texte et des graphiques nets. PaperMargins accepte quatre valeurs millimétriques par le constructeur Margins — haut, droite, bas, gauche.

IronPrint valide la configuration en tant qu'unité et soumet les paramètres combinés au pilote d'imprimante dans un seul travail. Pour des options supplémentaires comme la sélection du tiroir et le mode niveaux de gris, consultez le guide complet des paramètres d'impression.

Comment sélectionner une imprimante et imprimer de manière asynchrone ?

Pour les applications où bloquer le fil principal n'est pas une option — telles que les applications WPF ou WinForms — nous utilisons Printer.GetPrinterNamesAsync() et Printer.PrintAsync(). Les deux renvoient un Task, gardant l'interface utilisateur réactive.

:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-async-printer-select.cs
using IronPrint;
using System.Threading.Tasks;

public class PrintService
{
    public async Task PrintToFirstAvailableAsync(string filePath)
    {
        // Discover printers without blocking the UI
        List<string> printers = await Printer.GetPrinterNamesAsync();

        if (printers.Count == 0)
        {
            Console.WriteLine("No printers found.");
            return;
        }

        // Configure and print to the first available printer
        PrintSettings settings = new PrintSettings
        {
            PrinterName = printers[0],
            Dpi = 300
        };

        await Printer.PrintAsync(filePath, settings);
    }
}
Imports IronPrint
Imports System.Threading.Tasks

Public Class PrintService
    Public Async Function PrintToFirstAvailableAsync(filePath As String) As Task
        ' Discover printers without blocking the UI
        Dim printers As List(Of String) = Await Printer.GetPrinterNamesAsync()

        If printers.Count = 0 Then
            Console.WriteLine("No printers found.")
            Return
        End If

        ' Configure and print to the first available printer
        Dim settings As New PrintSettings With {
            .PrinterName = printers(0),
            .Dpi = 300
        }

        Await Printer.PrintAsync(filePath, settings)
    End Function
End Class
$vbLabelText   $csharpLabel

Cet exemple basé sur une classe englobe la logique de découverte et d'impression dans un service réutilisable. Nous appelons GetPrinterNamesAsync() pour récupérer la liste des imprimantes sans geler l'interface utilisateur, puis affectons la première imprimante disponible à PrinterName. L'appel await Printer.PrintAsync envoie le travail de manière asynchrone.

En production, nous pourrions remplacer printers[0] par la logique qui correspond à une convention de nommage — comme rechercher des imprimantes contenant " Étiquette " pour des étiquettes d'expédition ou " Couleur " pour des documents de marque. Les méthodes asynchrones d'IronPrint acceptent toutes le même objet PrintSettings, donc le comportement PrinterName est identique entre les chemins synchrones et asynchrones.

Quelles Sont Mes Prochaines Étapes ?

Nous avons couvert comment spécifier un nom d'imprimante en C# en utilisant la propriété PrintSettings.PrinterName d'IronPrint, depuis l'affectation statique jusqu'à la découverte dynamique lors de l'exécution avec Printer.GetPrinterNames(). Les points clés : les noms d'imprimantes doivent correspondre exactement (sensible à la casse), null par défaut à l'imprimante par défaut du système d'exploitation, et les boîtes de dialogue d'impression remplacent la sélection programmatique.

Pour continuer à explorer les capacités d'IronPrint :

Commencez un essai gratuit de 30 jours pour tester la sélection d'imprimantes dans vos propres projets, ou consultez les options de licence pour le déploiement en production.

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.