USO DE IRONPRINT

Cómo imprimir con impresora de red en C#

Publicado en 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;
// Configure printer setting
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 220;
printSettings.NumberOfCopies = 10;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the document
Printer.Print("awesomeIronPrint.pdf", printSettings);
using IronPrint;
// Configure printer setting
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 220;
printSettings.NumberOfCopies = 10;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the document
Printer.Print("awesomeIronPrint.pdf", printSettings);
Imports IronPrint
' Configure printer setting
Private printSettings As New PrintSettings()
printSettings.Dpi = 220
printSettings.NumberOfCopies = 10
printSettings.PaperOrientation = PaperOrientation.Portrait
' Print the document
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)
    {
        // Specify the path to the document to be printed on the local printer
        string documentPath = "path/to/your/document.pdf";
        // Instantiate a Printer Server object representing the local print server
        using (PrintServer printServer = new PrintServer())
        {
            // Get the default PrintQueue from the PrintServer default 
            PrintQueue defaultPrintQueue = printServer.DefaultPrintQueue;
            // Create a PrintTicket object to specify print settings (optional)
            PrintTicket printTicket = new PrintTicket();
            // Configure print settings, e.g., number of copies, paper size, orientation
            printTicket.CopyCount = 1;
            // Print the document to the default PrintQueue with the specified PrintTicket
            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)
    {
        // Specify the path to the document to be printed on the local printer
        string documentPath = "path/to/your/document.pdf";
        // Instantiate a Printer Server object representing the local print server
        using (PrintServer printServer = new PrintServer())
        {
            // Get the default PrintQueue from the PrintServer default 
            PrintQueue defaultPrintQueue = printServer.DefaultPrintQueue;
            // Create a PrintTicket object to specify print settings (optional)
            PrintTicket printTicket = new PrintTicket();
            // Configure print settings, e.g., number of copies, paper size, orientation
            printTicket.CopyCount = 1;
            // Print the document to the default PrintQueue with the specified PrintTicket
            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)
		' Specify the path to the document to be printed on the local printer
		Dim documentPath As String = "path/to/your/document.pdf"
		' Instantiate a Printer Server object representing the local print server
		Using printServer As New PrintServer()
			' Get the default PrintQueue from the PrintServer default 
			Dim defaultPrintQueue As PrintQueue = printServer.DefaultPrintQueue
			' Create a PrintTicket object to specify print settings (optional)
			Dim printTicket As New PrintTicket()
			' Configure print settings, e.g., number of copies, paper size, orientation
			printTicket.CopyCount = 1
			' Print the document to the default PrintQueue with the specified PrintTicket
			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()
    {
        // Get printer names using printer drivers
        List<string> printersName = Printer.GetPrinterNames();
        foreach (var printer in printersName)
        {
            Console.WriteLine(printer);
        }
    }
}
using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        // Get printer names using printer drivers
        List<string> printersName = Printer.GetPrinterNames();
        foreach (var printer in printersName)
        {
            Console.WriteLine(printer);
        }
    }
}
Imports IronPrint
Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			' Get printer names using printer drivers
			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()
    {
        // Print the document silently
        Printer.Print("sample.pdf");
    }
}
using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        // Print the document silently
        Printer.Print("sample.pdf");
    }
}
Imports IronPrint
Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			' Print the document silently
			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()
    {
        // Print with Dialog
        Printer.ShowPrintDialog("sample.pdf");
    }
}
using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        // Print with Dialog
        Printer.ShowPrintDialog("sample.pdf");
    }
}
Imports IronPrint
Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			' Print with Dialog
			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()
    {
        // Configure custom print setting
        PrintSettings printSettings = new PrintSettings();
        printSettings.Dpi = 150;
        printSettings.NumberOfCopies = 2;
        printSettings.PaperOrientation = PaperOrientation.Portrait;
        // Print the required document
        Printer.Print("sample.pdf", printSettings);
    }
}
using IronPrint;
namespace IronPrintDemo;
public class Program
{
    public static void Main()
    {
        // Configure custom print setting
        PrintSettings printSettings = new PrintSettings();
        printSettings.Dpi = 150;
        printSettings.NumberOfCopies = 2;
        printSettings.PaperOrientation = PaperOrientation.Portrait;
        // Print the required document
        Printer.Print("sample.pdf", printSettings);
    }
}
Imports IronPrint
Namespace IronPrintDemo
	Public Class Program
		Public Shared Sub Main()
			' Configure custom print setting
			Dim printSettings As New PrintSettings()
			printSettings.Dpi = 150
			printSettings.NumberOfCopies = 2
			printSettings.PaperOrientation = PaperOrientation.Portrait
			' Print the required document
			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.8 acaba de salir

Descarga gratuita de NuGet Descargas totales: 9,293 Ver licencias >