IRONSOFTWAREHOME

¿Cómo recuperar nombres de impresoras en C#

Curtis Chau
Curtis Chau
Updated: 29 de junio de 2026

Saber qué impresoras están disponibles en un sistema es un requisito previo común para cualquier aplicación .NET que envíe documentos a imprimir. Ya sea que el objetivo sea permitir que los usuarios elijan una impresora de una lista desplegable o enrutar trabajos de impresión a un dispositivo específico automáticamente, recuperar nombres de impresoras programáticamente es el primer paso.

IronPrint expone un único método estático — Printer.GetPrinterNames() — que devuelve cada impresora instalada en la máquina actual de Windows como un List<string>. Cubrimos la instalación, recuperación sincrónica y asincrónica, y cómo alimentar un nombre de impresora seleccionado en un trabajo de impresión a continuación.

Inicio rápido: Recuperar nombres de impresoras
  1. Instalar IronPrint a través de NuGet: Install-Package IronPrint
  2. Añadir using IronPrint; al archivo
  3. Llamar a Printer.GetPrinterNames() para obtener un List<string> de nombres de impresoras
  4. Itere sobre la lista y muestre o almacene cada nombre
  5. Pasar un nombre seleccionado a PrintSettings.PrinterName al imprimir
  1. 1Install IronPrint with NuGet Package Manager

    PM > Install-Package IronPrint

  2. 2Copie y ejecute este fragmento de código.

    using IronPrint;
    
    // Retrieve every printer installed on this machine
    List<string> printers = Printer.GetPrinterNames();
    
    foreach (var name in printers)
    {
        Console.WriteLine(name);
    }
    C#
  3. 3Despliegue para probar en su entorno real

    Comienza a usar IronPrint en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

¿Cómo puedo listar todos los nombres de impresoras instaladas?

Printer.GetPrinterNames() consulta el sistema operativo y devuelve cada impresora registrada como un List<string>. Llamamos a este método una vez e iteramos sobre el resultado:

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}");
}

Salida de consola

Encontradas 3 impresora(s):

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

La lista devuelta incluye impresoras locales, impresoras de red y controladores de impresión virtual. Cada cadena coincide con el nombre exacto mostrado en el panel de Configuración > Impresoras y escáneres de Windows, por lo que se puede usar directamente en la configuración de impresión.

Si no se han instalado impresoras, el método devuelve una lista vacía en lugar de lanzar una excepción. Una rápida verificación con printerNames.Count es todo lo necesario antes de presentar opciones a un usuario.

¿Cómo puedo recuperar nombres de impresoras de forma asincrónica?

Para aplicaciones donde bloquear el hilo de la interfaz de usuario no es aceptable — WPF, MAUI, o aplicaciones web ASP.NET — IronPrint proporciona Printer.GetPrinterNamesAsync(). El método devuelve un Task<List<string>> y funciona de manera idéntica a su contraparte sincrónica:

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);
}

Hacemos await la llamada como cualquier otra API asincrónica. El resultado es el mismo List<string> devuelto por GetPrinterNames(), por lo que no es necesario un análisis o conversión adicional. Este patrón asincrónico se integra naturalmente con async Task acciones del controlador y async void controladores de eventos.

¿Cómo imprimo en una impresora específica por nombre?

Una vez que tenemos el nombre de la impresora, lo asignamos a PrintSettings.PrinterName y pasamos el objeto de configuración a Printer.Print(). Esto envía el documento directamente a la impresora elegida sin mostrar un diálogo:

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 admite propiedades adicionales como Dpi, PaperOrientation, Grayscale y PaperMargins. Vea la lista completa en la referencia de la API PrintSettings y la guía de configuraciones de impresión.

También recuperamos las bandejas de papel disponibles para una impresora dada usando Printer.GetPrinterTrays(printerName), lo cual es útil cuando un trabajo de impresión necesita obtener papel de una bandeja específica.

¿Cuales son mis próximos pasos?

Cubrieron cuatro operaciones: instalar IronPrint, listar todos los nombres de impresoras con GetPrinterNames(), ejecutar la misma consulta de manera asincrónica con GetPrinterNamesAsync() y direccionar un documento a una impresora específica a través de PrintSettings.PrinterName.

Para más lecturas y ejemplos más profundos, explore estos recursos:

Obtenga una licencia de prueba gratuita para probar todas las características en un entorno en vivo, o vea las opciones de licencia cuando esté listo para implementar.

Preguntas Frecuentes

¿Cuál es la manera más fácil de recuperar nombres de impresoras en C#?

La manera más fácil de recuperar nombres de impresoras en C# es usando IronPrint .NET, lo que te permite obtener una lista de impresoras instaladas con una sola llamada de método.

¿Puedo recuperar nombres de impresoras de manera asíncrona usando IronPrint?

Sí, IronPrint .NET admite operaciones asíncronas, permitiéndote recuperar nombres de impresoras sin bloquear el hilo principal.

¿Es posible imprimir en una impresora específica por nombre usando IronPrint?

Absolutamente, IronPrint .NET te permite especificar el nombre de la impresora, por lo que puedes imprimir documentos directamente en cualquier impresora instalada de tu elección.

¿IronPrint admite la recuperación de nombres de impresora en todas las plataformas .NET?

IronPrint .NET está diseñado para trabajar con varias plataformas .NET, lo que te permite recuperar nombres de impresoras sin problemas en diferentes entornos.

¿Cómo maneja IronPrint los nombres de impresoras en un entorno de red?

IronPrint .NET puede recuperar nombres de impresoras tanto de impresoras locales como de red, haciéndolo versátil para usarse en diferentes configuraciones de red.

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
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.

...
Leer más

¿Listo para empezar?

Nuget Downloads 46,090Versión:2026.9recién lanzado

Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronPrint
nuget.org/packages/IronPrint/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPrint"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

  1. Descargue y descomprima IronPrint en una ubicación como ~/Libs dentro de su directorio de Solución
  2. En Visual Studio Solution Explorer, haga clic derecho en Referencias. Seleccione Examinar, "IronPrint.dll"

Licencias desde $999

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta