Comment Spécifier le Nom de l'Imprimante pour Imprimer un Document en C
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
- Installez IronPrint via NuGet :
Install-Package IronPrint - Ajoutez
using IronPrint;au fichier - Créez un objet
PrintSettings - Définissez
PrinterNamesur le nom exact de l'imprimante cible - Passez les paramètres à
Printer.Print()ouPrinter.PrintAsync()
-
Installez IronPrint avec le Gestionnaire de Packages NuGet
PM > Install-Package IronPrint -
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" }); -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronPrint dans votre projet dès aujourd'hui avec un essai gratuit
Flux de travail minimal (5 étapes)
- Installez la bibliothèque d'impression C# IronPrint
- Créer un objet `PrintSettings`
- Définissez `PrinterName` sur le nom de l'imprimante cible
- Passez les paramètres à `Printer.Print()`
- Exécutez le projet pour imprimer sur l'imprimante spécifiée
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)
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
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)
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
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 :
- Voir l'exemple de code d'obtention de noms d'imprimantes pour un extrait de découverte autonome
- Explorez le guide complet de configuration des paramètres d'impression pour toutes les propriétés disponibles
- Consulter la référence API de la classe Printer pour des méthodes comme
PrintToPrinter,ShowPrintDialog, et la gestion des tiroirs - Parcourir la référence API complète pour
PrintSettings,PaperSize, etMargins
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.

