USO DE IRONPRINT

Cómo imprimir con impresora de red en C#

Actualizado 6 de junio, 2024
Compartir:

Introducción

La impresión programática en impresoras de red es una tarea habitual en diversas aplicaciones de software. Tanto si está creando una aplicación de escritorio o móvil como un servicio web, la posibilidad de enviar documentos directamente a una impresora de red puede mejorar enormemente la facilidad de uso y la eficacia de su software. En este artículo, exploraremos cómo imprimir en una impresora de red utilizando C# y IronPrint de Iron Software.

Cómo imprimir con impresora de red en C#

  1. Crear un nuevo proyecto para imprimir documentos mediante IronPrint.
  2. Instale IronPrint a un nuevo proyecto.
  3. Lista de impresoras de red disponibles para imprimir documentos.
  4. Imprimir documentos PDF con IronPrint.
  5. Imprimir documentos PDF con IronPrint con Dialog.
  6. Impresión avanzada con los ajustes de impresión.

Configuración del entorno

Antes de profundizar en la parte de codificación, vamos a asegurarnos de que nuestro entorno está configurado correctamente. Para imprimir en una impresora de red en C#, necesita lo siguiente:

  1. Asegúrese de que hay una impresora de red accesible desde la máquina donde se ejecutará su aplicación C#.
  2. La dirección de red de la impresora (Dirección IP o nombre de la impresora en red).
  3. Controladores de impresora necesarios instalados en la máquina.
  4. Privilegios administrativos para instalar impresoras o controladores si es necesario.

IronPrint

Antes de sumergirnos en los detalles de la implementación, familiaricémonos con cómo empezar a utilizar IronPrint:

  1. Instalación: IronPrint puede instalarse fácilmente a través de NuGet Package Manager. Sólo tiene que visitar la página Página NuGet y siga las instrucciones de instalación.
  2. Documentación: Consulte la documentación oficial para obtener una guía de inicio rápido y una referencia completa de la API.

    Compatibilidad y soporte: IronPrint ofrece una amplia compatibilidad y soporte en varios entornos y tipos de proyectos:

  • Soporte de versiones .NET: IronPrint soporta C#, VB.NET, y F#, incluyendo .NET 8,7,6,5, y Core 3.1+.
  • Sistemas operativos y entornos: IronPrint es compatible con Windows (7+)macOS (10+)iOS (11+)y Android API 21+ (v5 "Lollipop").
  • Tipos de proyectos: Tanto si está desarrollando (Xamarin, MAUI, Avalonia), escritorio (WPF, MAUI, Windows Avalonia)o aplicaciones de consola, IronPrint tiene todo lo que necesita.

    Ahora veamos cómo imprimir con IronPrint con el siguiente ejemplo.

using IronPrint;
//  Configurar los ajustes de la impresora
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 220;
printSettings.NumberOfCopies = 10;
printSettings.PaperOrientation = PaperOrientation.Portrait;
//  Imprimir el documento
Printer.Print("awesomeIronPrint.pdf", printSettings);
using IronPrint;
//  Configurar los ajustes de la impresora
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 220;
printSettings.NumberOfCopies = 10;
printSettings.PaperOrientation = PaperOrientation.Portrait;
//  Imprimir el documento
Printer.Print("awesomeIronPrint.pdf", printSettings);
Imports IronPrint
'  Configurar los ajustes de la impresora
Private printSettings As New PrintSettings()
printSettings.Dpi = 220
printSettings.NumberOfCopies = 10
printSettings.PaperOrientation = PaperOrientation.Portrait
'  Imprimir el documento
Printer.Print("awesomeIronPrint.pdf", printSettings)
VB   C#

System.Printing

El espacio de nombres System.Printing en C# contiene clases e interfaces que permiten a los desarrolladores interactuar con impresoras, colas de impresión, servidores de impresión y trabajos de impresión mediante programación. Algunas clases e interfaces clave dentro de este espacio de nombres incluyen:

  1. PrintQueue: Representa una impresora o dispositivo de impresión conectado al sistema.
  2. ServidorImpresión: Representa un servidor de impresión en la red.
  3. PrintSystemJobInfo: Proporciona información sobre un trabajo de impresión, como su estado y propiedades.
  4. PrintTicket: Representa la configuración de un trabajo de impresión, incluyendo el tamaño del papel, la orientación y la calidad de impresión.

    Primeros pasos con System.Printing: Antes de sumergirnos en el código, vamos a asegurarnos de que tenemos una comprensión básica de cómo funciona la impresión con System.Printing:

  5. Selección de PrintQueue: Es necesario identificar el objeto PrintQueue que representa la impresora que se desea utilizar para imprimir.
  6. Configuración de PrintTicket: Opcionalmente, puede configurar el objeto PrintTicket para especificar ajustes de impresión como el tamaño del papel, la orientación y el número de copias.
  7. Impresión de documentos: Por último, se envía el documento a imprimir a la PrintQueue seleccionada.

    Implementación de la impresión de documentos con System.Printing: Ahora, vamos a recorrer el proceso de impresión de un documento utilizando System.Printing con el siguiente ejemplo:

    Aquí está el código fuente:

using System;
using System.IO;
using System.Printing;
class Program
{
    static void Main(string[] args)
    {
        //  Especifique la ruta del documento que se imprimirá en la impresora local
        string documentPath = "path/to/your/document.pdf";
        //  Instanciar un objeto Servidor de Impresoras que representa el servidor de impresión local
        using (PrintServer printServer = new PrintServer())
        {
            //  Obtener la cola de impresión predeterminada del servidor de impresión predeterminado 
            PrintQueue defaultPrintQueue = printServer.DefaultPrintQueue;
            //  Crear un objeto PrintTicket para especificar la configuración de impresión (opcional)
            PrintTicket printTicket = new PrintTicket();
            //  Configurar las opciones de impresión, por ejemplo, el número de copias, el tamaño del papel, la orientación
            printTicket.CopyCount = 1;
            //  Imprime el documento en la cola de impresión predeterminada con el PrintTicket especificado.
            defaultPrintQueue.AddJob("MyPrintJob", documentPath, false, printTicket);
        }
        Console.WriteLine("Document sent to print queue.");
    }
}
using System;
using System.IO;
using System.Printing;
class Program
{
    static void Main(string[] args)
    {
        //  Especifique la ruta del documento que se imprimirá en la impresora local
        string documentPath = "path/to/your/document.pdf";
        //  Instanciar un objeto Servidor de Impresoras que representa el servidor de impresión local
        using (PrintServer printServer = new PrintServer())
        {
            //  Obtener la cola de impresión predeterminada del servidor de impresión predeterminado 
            PrintQueue defaultPrintQueue = printServer.DefaultPrintQueue;
            //  Crear un objeto PrintTicket para especificar la configuración de impresión (opcional)
            PrintTicket printTicket = new PrintTicket();
            //  Configurar las opciones de impresión, por ejemplo, el número de copias, el tamaño del papel, la orientación
            printTicket.CopyCount = 1;
            //  Imprime el documento en la cola de impresión predeterminada con el PrintTicket especificado.
            defaultPrintQueue.AddJob("MyPrintJob", documentPath, false, printTicket);
        }
        Console.WriteLine("Document sent to print queue.");
    }
}
Imports System
Imports System.IO
Imports System.Printing
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		'  Especifique la ruta del documento que se imprimirá en la impresora local
		Dim documentPath As String = "path/to/your/document.pdf"
		'  Instanciar un objeto Servidor de Impresoras que representa el servidor de impresión local
		Using printServer As New PrintServer()
			'  Obtener la cola de impresión predeterminada del servidor de impresión predeterminado 
			Dim defaultPrintQueue As PrintQueue = printServer.DefaultPrintQueue
			'  Crear un objeto PrintTicket para especificar la configuración de impresión (opcional)
			Dim printTicket As New PrintTicket()
			'  Configurar las opciones de impresión, por ejemplo, el número de copias, el tamaño del papel, la orientación
			printTicket.CopyCount = 1
			'  Imprime el documento en la cola de impresión predeterminada con el PrintTicket especificado.
			defaultPrintQueue.AddJob("MyPrintJob", documentPath, False, printTicket)
		End Using
		Console.WriteLine("Document sent to print queue.")
	End Sub
End Class
VB   C#

IronPrint frente a System.Printing.

Cómo Imprimir con Impresora de Red en C#: Figura 1 - Una rápida tabla comparativa entre IronPrint vs System.Printing

Esta tabla proporciona una rápida visión general de las funciones y características de IronPrint y System.Printing, ayudando a los desarrolladores a tomar decisiones informadas basadas en sus requisitos específicos y objetivos de plataforma.

Paso 1: Crear un nuevo proyecto para imprimir documentos con IronPrint

Cree una aplicación de consola en Visual Studio como se muestra a continuación.

Cómo imprimir con impresora de red en C#: Figura 2 - Creación de una aplicación de consola

Indique el nombre y la ubicación del proyecto.

Cómo imprimir con impresora de red en C#: Figura 3 - Proporcionar un nombre de proyecto

Seleccione la versión .NET.

Cómo imprimir con impresora de red en C#: Figura 4 - Seleccione la versión .NET adecuada

Ahora el proyecto está creado y listo para seguir codificando.

Paso 2: Instalar IronPrint en un nuevo proyecto

Instale IronPrint desde Visual Studio Package Manager como se muestra a continuación.

Cómo imprimir con impresora de red en C#: Figura 5 - Búsqueda de IronPrint a través del Gestor de Paquetes de Visual Studio

IronPrint también puede instalarse utilizando el siguiente comando:

Install-Package IronPrint

Paso 3: Listar las impresoras de red disponibles para imprimir documentos

Para listar los nombres de las impresoras usando IronPrint use el siguiente código:

using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        //  Obtener nombres de impresora mediante controladores de impresora
        List<string> printersName = Printer.GetPrinterNames();
        foreach (var printer in printersName)
        {
            Console.WriteLine(printer);
        }
    }
}
using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        //  Obtener nombres de impresora mediante controladores de impresora
        List<string> printersName = Printer.GetPrinterNames();
        foreach (var printer in printersName)
        {
            Console.WriteLine(printer);
        }
    }
}
Imports IronPrint
Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			'  Obtener nombres de impresora mediante controladores de impresora
			Dim printersName As List(Of String) = Printer.GetPrinterNames()
			For Each printer In printersName
				Console.WriteLine(printer)
			Next printer
		End Sub
	End Class
End Namespace
VB   C#

Código Explicación

  1. Utilice Printer.GetPrinterNames para obtener todos los controladores de impresora disponibles.
  2. Imprime los nombres usando Console.WriteLine.

Salida

Cómo imprimir con impresora de red en C#: Figura 6 - Ejemplo de salida de impresoras disponibles

Paso 4: Imprimir documento PDF con IronPrint

Utilice el código siguiente para imprimir el documento en silencio:

using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        //  Imprimir el documento en silencio
        Printer.Print("sample.pdf");
    }
}
using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        //  Imprimir el documento en silencio
        Printer.Print("sample.pdf");
    }
}
Imports IronPrint
Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			'  Imprimir el documento en silencio
			Printer.Print("sample.pdf")
		End Sub
	End Class
End Namespace
VB   C#

Tras la ejecución, el documento se añade a la cola de impresión como se muestra en la salida.

Salida

Cómo imprimir con impresora de red en C#: Figura 7 - Ejemplo de salida mostrando el documento que se añade a la cola de impresión

Paso 5: Imprimir documento PDF con IronPrint with Dialog

Utilice el siguiente código para imprimir el documento con el diálogo:

using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        //  Imprimir con diálogo
        Printer.ShowPrintDialog("sample.pdf");
    }
}
using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        //  Imprimir con diálogo
        Printer.ShowPrintDialog("sample.pdf");
    }
}
Imports IronPrint
Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			'  Imprimir con diálogo
			Printer.ShowPrintDialog("sample.pdf")
		End Sub
	End Class
End Namespace
VB   C#

Código Explicación

  1. Usando ShowPrintDialog de IronPrint podemos imprimir con Dialog
  2. Una vez abierto el cuadro de diálogo, seleccione la impresora deseada para imprimir el documento.

Salida

Cómo imprimir con impresora de red en C#: Figura 8 - Seleccionar la impresora correcta

Paso 6: Avanzar en la impresión con los ajustes de impresión

IronPrint permite imprimir documentos con configuraciones avanzadas. Admite las siguientes propiedades:

  1. TamañoPapel: Especifica las dimensiones del papel utilizado por la impresora.
  2. Orientación del papel: Define la orientación del papel, como Automático, Vertical u Horizontal.
  3. DPI: Establece la resolución de impresión deseada en puntos por pulgada. El valor por defecto es 300, empleado habitualmente en la impresión comercial. Los PPP reales pueden estar limitados por las capacidades de la impresora.
  4. NúmeroDeCopias: Indica el número de copias idénticas a imprimir para un documento.
  5. NombreImpresora: Especifica el nombre de la impresora designada para las tareas de impresión.
  6. MargenesPapel: Determina los márgenes para la impresión, medidos en milímetros.
  7. Escala de grises: Un valor booleano que determina si se imprime en escala de grises. Por defecto es false.

    Veamos ahora un ejemplo de código:

using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        //  Configurar los ajustes de impresión personalizados
        PrintSettings printSettings = new PrintSettings();
        printSettings.Dpi = 150;
        printSettings.NumberOfCopies = 2;
        printSettings.PaperOrientation = PaperOrientation.Portrait;
        //  Imprimir el documento requerido
        Printer.Print("sample.pdf", printSettings);
    }
}
using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        //  Configurar los ajustes de impresión personalizados
        PrintSettings printSettings = new PrintSettings();
        printSettings.Dpi = 150;
        printSettings.NumberOfCopies = 2;
        printSettings.PaperOrientation = PaperOrientation.Portrait;
        //  Imprimir el documento requerido
        Printer.Print("sample.pdf", printSettings);
    }
}
Imports IronPrint
Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			'  Configurar los ajustes de impresión personalizados
			Dim printSettings As New PrintSettings()
			printSettings.Dpi = 150
			printSettings.NumberOfCopies = 2
			printSettings.PaperOrientation = PaperOrientation.Portrait
			'  Imprimir el documento requerido
			Printer.Print("sample.pdf", printSettings)
		End Sub
	End Class
End Namespace
VB   C#

Código Explicación

  1. El código comienza con la importación del espacio de nombres necesario IronPrint, que presumiblemente contiene las clases y métodos necesarios para la impresión.
  2. Dentro del espacio de nombres IronPrintDemo, hay una clase llamada Program declarada como public.
  3. El método Main sirve como punto de entrada del programa.
  4. Dentro del método Main:
    • Un objeto PrintSettings llamado printSettings es instanciado para configurar ajustes de impresión personalizados.
    • La propiedad Dpi de printSettings se establece en 150, indicando una resolución de impresión de 150 puntos por pulgada.
    • La propiedad NumberOfCopies de printSettings se establece en 2, especificando que se imprimirán dos copias idénticas del documento.
    • La propiedad PaperOrientation de printSettings se establece en PaperOrientation.Portrait, indicando que el documento se imprimirá en orientación vertical.
  5. Por último, la impresora. Se invoca el método Print con los parámetros "ejemplo.pdf" (el nombre del documento a imprimir) y printSettings. (la configuración de impresión personalizada). Este método gestiona presumiblemente el proceso de impresión utilizando la configuración especificada.

Salida

Cómo imprimir con impresora de red en C#: Figura 9 - Ejemplo de salida mostrando el documento PDF añadido a la cola de impresión para imprimir

Licencia

IronPrint de Iron Software es una biblioteca empresarial y requiere una licencia para funcionar. Al añadir una clave de licencia IronPrint, el proyecto se activa sin restricciones ni marcas de agua. Compre una licencia aquí o regístrese para obtener una clave de prueba gratuita de 30 días aquí.

Una vez obtenida la clave de licencia, es necesario colocarla en el archivo appSettings.json de la aplicación.

{
"IronPrint.License.LicenseKey": "IRONPRINT.KEY"
}

Esto imprimirá documentos sin restricciones ni marcas de agua.

Conclusión

En resumen, IronPrint y System.Printing tienen cada uno sus puntos fuertes y son adecuados para diferentes escenarios. IronPrint proporciona una solución simplificada y multiplataforma centrada en la sencillez y la versatilidad, mientras que System.Printing ofrece integración nativa y control detallado, especialmente para aplicaciones basadas en Windows. Los desarrolladores deben tener en cuenta sus requisitos específicos y los objetivos de la plataforma a la hora de elegir entre estas bibliotecas de impresión para sus proyectos de C#.

IronPrint simplifica la impresión de documentos dentro de las aplicaciones .NET proporcionando una API fácil de usar y una amplia compatibilidad entre varias plataformas y tipos de proyectos. Siguiendo los pasos descritos en este artículo, puede integrar perfectamente la funcionalidad de impresión en sus proyectos .NET, mejorando su usabilidad y productividad. Explore las posibilidades de IronPrint y descubra un mundo de impresión eficaz de documentos en sus aplicaciones.

SIGUIENTE >
Cómo imprimir un código QR en C#

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 5,037 Ver licencias >
123