IRONSOFTWAREHOME

Comment récupérer les noms des imprimantes en C#

Curtis Chau
Curtis Chau
Updated: 29 juin 2026

Connaître les imprimantes disponibles sur un système est une exigence courante pour toute application .NET envoyant des documents à imprimer. Que l'objectif soit de permettre aux utilisateurs de choisir une imprimante dans un menu déroulant ou de diriger automatiquement les tâches d'impression vers un appareil spécifique, récupérer les noms des imprimantes par programmation est la première étape.

IronPrint expose une seule méthode statique — Printer.GetPrinterNames() — qui renvoie chaque imprimante installée sur la machine Windows actuelle en tant que List<string>. Nous couvrons l'installation, la récupération synchrone et asynchrone, et comment intégrer un nom d'imprimante sélectionné dans un travail d'impression ci-dessous.

Démarrage rapide : Récupérer les noms des imprimantes
  1. Install IronPrint via NuGet: Install-Package IronPrint
  2. Ajoutez using IronPrint; au fichier
  3. Appelez Printer.GetPrinterNames() pour obtenir un List<string> de noms d'imprimantes
  4. Parcourez la liste et affichez ou stockez chaque nom
  5. Passez un nom sélectionné à PrintSettings.PrinterName lors de l'impression
  1. 1Install IronPrint with NuGet Package Manager

    PM > Install-Package IronPrint

  2. 2Copiez et exécutez cet extrait de code.

    using IronPrint;
    
    // Retrieve every printer installed on this machine
    List<string> printers = Printer.GetPrinterNames();
    
    foreach (var name in printers)
    {
        Console.WriteLine(name);
    }
    C#
  3. 3Dé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 puis-je lister tous les noms d'imprimantes installées ?

Printer.GetPrinterNames() interroge le système d'exploitation et renvoie chaque imprimante enregistrée en tant que List<string>. Nous appelons cette méthode une fois et itérons sur le résultat :

using IronPrint;
using System;
using System.Collections.Generic;

// List every installed printer
List<string> printerNames = Printer.GetPrinterNames();

Console.WriteLine($"Found {printerNames.Count} printer(s):\n");

// Print each printer name
foreach (string name in printerNames)
{
    Console.WriteLine($"  • {name}");
}

Sortie Console

3 imprimante(s) trouvées :

 • Microsoft Print to PDF
 • HP LaserJet Pro MFP M428
  • OneNote (Bureau)
Text

La liste retournée inclut les imprimantes locales, les imprimantes réseau et les pilotes d'impression virtuels. Chaque chaîne correspond exactement au nom affiché dans le panneau Windows Paramètres > Imprimantes et scanners, elle peut donc être utilisée directement dans la configuration des paramètres d'impression.

Si aucune imprimante n'est installée, la méthode renvoie une liste vide plutôt que de lancer une exception. Une vérification rapide printerNames.Count est tout ce qui est nécessaire avant de présenter les options à un utilisateur.

Comment puis-je récupérer les noms des imprimantes de manière asynchrone ?

Pour les applications où le blocage du thread de l'UI n'est pas acceptable — WPF, MAUI ou applications web ASP.NET — IronPrint fournit Printer.GetPrinterNamesAsync(). La méthode renvoie un Task<List<string>> et fonctionne de manière identique à son homologue synchrone :

using IronPrint;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

// Retrieve printer names asynchronously
List<string> printerNames = await Printer.GetPrinterNamesAsync();

// Print each printer name
foreach (string name in printerNames)
{
    Console.WriteLine(name);
}

Nous await l'appel comme n'importe quelle autre API asynchrone. Le résultat est le même List<string> renvoyé par GetPrinterNames(), donc aucun analyse ou conversion supplémentaire n'est nécessaire. Ce motif asynchrone s'intègre naturellement avec les actions de contrôleur async Task et les gestionnaires d'événements async void.

Comment puis-je imprimer sur une imprimante spécifique par nom ?

Une fois que nous avons le nom de l'imprimante, nous l'affectons à PrintSettings.PrinterName et transmettons l'objet paramètres à Printer.Print(). Cela envoie le document directement à l'imprimante choisie sans afficher de dialogue :

using IronPrint;
using System.Collections.Generic;

// Retrieve available printers
List<string> printers = Printer.GetPrinterNames();

// Select a printer matching "LaserJet", or fall back to the first available
string targetPrinter = printers.Find(p => p.Contains("LaserJet"))
                       ?? printers[0];

// Configure print settings
PrintSettings settings = new PrintSettings
{
    PrinterName = targetPrinter,
    PaperSize = PaperSize.A4,
    NumberOfCopies = 1
};

// Print the document
Printer.Print("invoice.pdf", settings);

PrintSettings prend en charge des propriétés supplémentaires telles que Dpi, PaperOrientation, Grayscale, et PaperMargins. Voir la liste complète dans la référence API PrintSettings et le guide de configuration des paramètres d'impression.

Nous récupérons également les bacs à papier disponibles pour une imprimante donnée en utilisant Printer.GetPrinterTrays(printerName), ce qui est utile lorsqu'un travail d'impression doit tirer le papier d'un bac spécifique.

Quelles Sont Mes Prochaines Étapes ?

Nous avons couvert quatre opérations : l'installation de IronPrint, la liste de tous les noms d'imprimantes avec GetPrinterNames(), l'exécution de la même requête de manière asynchrone avec GetPrinterNamesAsync(), et la redirection d'un document vers une imprimante spécifique via PrintSettings.PrinterName.

Pour des lectures supplémentaires et des exemples plus approfondis, explorez ces ressources :

Obtenez une licence d'essai gratuite pour tester chaque fonctionnalité dans un environnement en direct, ou voir les options de licences lorsque vous êtes prêt à déployer.

Questions Fréquemment Posées

Quelle est la manière la plus simple de récupérer les noms des imprimantes en C# ?

La manière la plus simple de récupérer les noms des imprimantes en C# est d'utiliser IronPrint .NET, qui vous permet d'obtenir une liste des imprimantes installées avec un seul appel de méthode.

Puis-je récupérer les noms des imprimantes de manière asynchrone en utilisant IronPrint ?

Oui, IronPrint .NET prend en charge les opérations asynchrones, vous permettant de récupérer les noms des imprimantes sans bloquer le fil principal.

Est-il possible d'imprimer sur une imprimante spécifique par son nom en utilisant IronPrint ?

Absolument, IronPrint .NET vous permet de spécifier le nom de l'imprimante, vous pouvez donc imprimer des documents directement sur n'importe quelle imprimante installée de votre choix.

IronPrint prend-il en charge la récupération des noms d'imprimantes sur toutes les plateformes .NET ?

IronPrint .NET est conçu pour fonctionner avec diverses plateformes .NET, vous permettant de récupérer les noms des imprimantes de manière transparente dans différents environnements.

Comment IronPrint gère-t-il les noms d'imprimantes dans un environnement en réseau ?

IronPrint .NET peut récupérer les noms des imprimantes à la fois locales et en réseau, ce qui le rend polyvalent pour une utilisation dans différentes configurations réseau.

What additional properties can I configure with PrintSettings?

With `PrintSettings`, you can configure properties like `Dpi`, `PaperSize`, `PaperOrientation`, `Grayscale`, and `PaperMargins`.

How do I iterate over printer names in C# using IronPrint?

You can use a foreach loop to iterate over the list returned by `Printer.GetPrinterNames()`, allowing you to display or store each printer name.

Can IronPrint work with network and virtual printers?

Yes, the list returned by `Printer.GetPrinterNames()` includes local printers, network printers, and virtual print drivers.

Where can I find more information on printing settings in IronPrint?

You can refer to the [PrintSettings How-To Guide](https://ironsoftware.com/csharp/print/how-to/print-settings/) and the [API Reference](https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html) for detailed information.

Does IronPrint provide support for different paper trays?

Yes, you can use `Printer.GetPrinterTrays(printerName)` to retrieve available paper trays for a given printer.

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 et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Prêt à commencer?

Nuget Downloads 46,090Version :2026.9vient de sortir

Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPrint
nuget.org/packages/IronPrint/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez "IronPrint"
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

  1. Téléchargez et décompressez IronPrint à un emplacement tel que ~/Libs dans votre répertoire Solution
  2. Dans Visual Studio Solution Explorer, cliquez avec le bouton droit sur Références. Sélectionnez Parcourir, "IronPrint.dll"

Licences à partir de $999

Vous avez une question ? Contactez notre équipe de développement.

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise