IRONSOFTWAREHOME

¿Cómo especificar el nombre de la impresora en C#?

Curtis Chau
Curtis Chau
Updated: 9 de mayo de 2026

La clase PrintSettings de IronPrint expone una propiedad PrinterName que dirige trabajos de impresión a una impresora específica. Asignamos el nombre exacto de la impresora objetivo como una cadena, pasamos el objeto configurado PrintSettings a cualquier método de impresión de IronPrint, y el documento va a esa impresora en lugar de la predeterminada del sistema.

Esta guía recorre cómo establecer un nombre de impresora, descubrir impresoras disponibles en tiempo de ejecución y combinar la selección de impresora con otros ajustes de impresión.

Inicio rápido: Especificar el nombre de la impresora
  1. 1Install IronPrint with NuGet Package Manager

    PM > Install-Package IronPrint

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

    using IronPrint;
    
    // Print a document to a specific printer
    Printer.Print("report.pdf", new PrintSettings
    {
        PrinterName = "HP LaserJet Pro M404"
    });
    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 especifíco un nombre de impresora en C#?

Especificamos la impresora objetivo asignando su nombre a la propiedad PrinterName sobre un objeto PrintSettings. A continuación, pasamos ese objeto a Printer.Print.

Entrada

invoice.pdf es una factura A4 B2B estilizada con elementos de línea y totales, impresa en una impresora nombrada específica a través de PrintSettings.PrinterName.

using IronPrint;

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

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

Primero instanciamos PrintSettings, que se inicializa con PrinterName = null, es decir, la impresora predeterminada del SO. Luego sobrescribimos PrinterName con el nombre exacto de la impresora objetivo. Cuando llamamos a Printer.Print, IronPrint envía el trabajo directamente a la cola de esa impresora.

Resultado

La factura se envía directamente a la impresora nombrada. El trabajo aparece en la cola de la impresora como se ve en el ejemplo de impresión silenciosa.

Salida de la factura impresa en "Microsoft Print to PDF" usando PrinterName.

Dos detalles a tener en cuenta. Primero, el nombre de la impresora debe coincidir exactamente con lo que informa el sistema operativo; esta comparación distingue entre mayúsculas y minúsculas. Una diferencia como "hp laserjet" en lugar de "HP LaserJet" fallará silenciosamente o lanzará un error. En segundo lugar, si el usuario abre un cuadro de diálogo de impresión a través de ShowPrintDialog, la selección del cuadro de diálogo anula cualquier valor que PrinterName se hubiera establecido en el código, dando al usuario el control final.

Si el nombre de la impresora no se conoce de antemano, podemos consultar todas las impresoras instaladas en tiempo de ejecución en lugar de codificar el valor.

¿Cómo descubro las impresoras disponibles?

En lugar de codificar manualmente los nombres de las impresoras, podemos consultar el sistema en tiempo de ejecución usando Printer.GetPrinterNames. Este método devuelve un List<string> que contiene todas las impresoras instaladas en la máquina.

Entrada

report.pdf es un informe de negocios A4 con una sección de resumen y una tabla de datos, impreso en la primera impresora descubierta dinámicamente.

using IronPrint;

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

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

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

Llamamos a GetPrinterNames para recuperar todas las impresoras que el sistema operativo conoce, incluyendo impresoras locales, de red y virtuales como "Microsoft Print to PDF". Luego iteramos a través de la lista y seleccionamos una impresora por índice, coincidencia de nombre o cualquier lógica personalizada que la aplicación requiera.

Resultado

El informe se envía a la primera impresora disponible. El trabajo aparece en la cola de la impresora como se ve arriba.

Salida del informe impresa en la primera impresora disponible a través de GetPrinterNames.

Este patrón de descubrir y luego imprimir es esencial para aplicaciones desplegadas en diferentes máquinas. Codificar un nombre de impresora funciona para escenarios de una sola máquina, pero las aplicaciones de producción deberían consultar las impresoras disponibles y dejar que el usuario escoja o seleccionarla programáticamente basada en convenciones de nombres.

La selección de impresora también puede emparejarse con el tamaño del papel, DPI, cantidad de copias y márgenes en un único objeto de configuración.

¿Cómo combino el nombre de la impresora con otros ajustes?

La clase PrintSettings expone PrinterName junto con propiedades para el tamaño del papel, orientación, DPI, márgenes, cantidad de copias y más. Configuramos todo en un único objeto.

Entrada

quarterly-report.pdf es un informe financiero trimestral en A4 con tarjetas e indicadores clave de rendimiento, impreso con PrinterName combinado con tamaño de papel, DPI y cantidad de copias en un solo objeto PrintSettings.

using IronPrint;

// Configure full print settings with a named 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 the quarterly report
Printer.Print("quarterly-report.pdf", settings);

Usamos la sintaxis del inicializador de objetos para mejorar la legibilidad. PrinterName direcciona el trabajo a "Office Color Printer" mientras que las propiedades restantes controlan el formato de salida. Dpi a 300 produce texto y gráficos nítidos. PaperMargins acepta valores en milímetros a través del constructor Margins. Para la lista completa de propiedades disponibles, vea la guía de configuración de impresión.

Resultado

El informe trimestral se imprime con la impresora nombrada, en orientación vertical A4, 300 DPI, 2 copias y márgenes de 15 mm combinados en un solo trabajo. El trabajo aparece en la cola de la impresora como se ve arriba.

Salida del informe trimestral con PrinterName, A4, 300 DPI, 2 copias y márgenes de 15 mm.

IronPrint valida la configuración como una unidad y envía los ajustes combinados al controlador de la impresora en un solo trabajo.

Las aplicaciones que no pueden bloquear el hilo principal durante el descubrimiento de la impresora o la impresión pueden usar los equivalentes asincrónicos de ambas operaciones.

¿Cómo selecciono una impresora e imprimo de forma asíncrona?

Para aplicaciones WPF y WinForms donde no es una opción bloquear el hilo principal, usamos Printer.GetPrinterNamesAsync y Printer.PrintAsync. Ambos devuelven un Task, manteniendo la interfaz de usuario receptiva.

using IronPrint;
using System.Threading.Tasks;

public class PrintService
{
    public async Task PrintToFirstAvailableAsync(string filePath)
    {
        // Discover available printers asynchronously
        List<string> printers = await Printer.GetPrinterNamesAsync();

        // Exit if no printers are installed
        if (printers.Count == 0)
        {
            Console.WriteLine("No printers found.");
            return;
        }

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

        // Print asynchronously
        await Printer.PrintAsync(filePath, settings);
    }
}

Este ejemplo basado en clase envuelve la lógica de descubrimiento e impresión en un servicio reutilizable. Llamamos a GetPrinterNamesAsync para recuperar la lista de impresoras sin congelar la interfaz de usuario, luego asignamos la primera impresora disponible a PrinterName. La llamada await Printer.PrintAsync envía el trabajo de forma asincrónica.

Resultado

La factura se imprime asincrónicamente en la primera impresora descubierta. El trabajo aparece en la cola de la impresora como se ve arriba.

Salida de la factura impresa asincrónicamente a la primera impresora disponible.

En producción, podríamos reemplazar printers[0] con una lógica que coincida con un convenio de nomenclatura, como buscar impresoras que contengan "Label" para etiquetas de envío o "Color" para documentos con marca. Los métodos asíncronos de IronPrint aceptan todos el mismo objeto PrintSettings, por lo que el comportamiento de PrinterName es idéntico en rutas sincrónicas y asíncronas.

Con asignación estática, descubrimiento en tiempo de ejecución, configuraciones combinadas y flujos de trabajo asincrónicos, todos cubiertos, una serie de recursos relacionados merece ser marcada.

¿Cuales son mis próximos pasos?

Cubrimos la especificación de un nombre de impresora a través de PrintSettings.PrinterName, desde la asignación estática hasta el descubrimiento dinámico en tiempo de ejecución con Printer.GetPrinterNames. Los puntos clave: los nombres de las impresoras deben coincidir exactamente (distinguen entre mayúsculas y minúsculas), null por defecto en la impresora predeterminada del sistema operativo, y los cuadros de diálogo de impresión anulan la selección programática.

El ejemplo de nombres de impresora proporciona un fragmento de descubrimiento independiente, mientras que la guía de configuración de impresión cubre cada propiedad configurable en detalle. La referencia API de la clase Printer documenta todos los métodos de impresión estáticos, y la referencia API de PrintSettings lista cada campo y predeterminado. Para un recorrido completo, el tutorial de impresión de documentos reúne todo.

Comience una prueba gratuita de 30 días para probar la selección de impresoras en un proyecto en vivo. Cuando esté listo, vea las opciones de licencia comenzando en $999.

https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.Printer.html https://ironsoftware.com/csharp/print/how-to/print-settings/https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.Printer.html

Preguntas Frecuentes

¿Cómo puedo especificar un nombre de impresora en C# usando IronPrint?

Con IronPrint, puedes especificar un nombre de impresora en C# estableciendo la propiedad PrinterName. Esto te permite dirigir una impresora específica para tus tareas de impresión.

¿Qué es IronPrint?

IronPrint es una biblioteca de Iron Software que permite a los desarrolladores gestionar tareas de impresión en aplicaciones C#, proporcionando funcionalidad para especificar nombres de impresoras y otras opciones de impresión.

¿Cómo descubro impresoras disponibles en C#?

Con IronPrint, puedes descubrir fácilmente las impresoras disponibles en tu red accediendo a la lista de impresoras y seleccionando el PrinterName deseado para tu trabajo de impresión.

¿Puedo establecer la propiedad PrinterName dinámicamente?

Sí, con IronPrint puedes establecer dinámicamente la propiedad PrinterName en tu código C# para seleccionar la impresora deseada en tiempo de ejecución.

¿Es posible imprimir en una impresora de red usando IronPrint?

Sí, IronPrint te permite especificar e imprimir en impresoras de red configurando la propiedad PrinterName adecuada en tu aplicación C#.

Is it possible to print asynchronously with IronPrint?

Yes, you can use `Printer.GetPrinterNamesAsync` and `Printer.PrintAsync` methods in IronPrint to perform asynchronous printing, which is useful for keeping UI applications responsive.

Does IronPrint support user interaction via print dialogs?

Yes, in IronPrint, if a print dialog is opened using `ShowPrintDialog`, it can override the programmatic selection in the `PrinterName` property, giving end-users final control over printer selection.

What should I do if no printers are found using IronPrint?

If no printers are found with IronPrint's `Printer.GetPrinterNames`, ensure that printers are correctly installed and available on the system. You may also execute fallback logic or notify the user.

How do I ensure sharp print output using IronPrint?

To ensure sharp print output with IronPrint, set the `Dpi` property in the `PrintSettings` object to a suitable dpi value like 300, which produces high-quality text and graphics.

Can IronPrint be used for network and virtual printers?

Yes, IronPrint supports printing to local, network, and virtual printers, like 'Microsoft Print to PDF', as long as they are recognized by the operating system.

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