USO DE IRONPRINT

Cómo imprimir con impresora de red en C#

Chaknith Bin
Chaknith Bin
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 usando C# y IronPrint de Iron Software.

Cómo imprimir con impresora de red en C#

  1. Cree un nuevo proyecto para imprimir documentos usando IronPrint.

  2. Instala IronPrint en un nuevo proyecto.

  3. Lista de impresoras de red disponibles para imprimir documentos.

  4. Imprime documentos PDF usando IronPrint.

  5. Imprime documentos PDF usando IronPrint con Diálogo.

  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 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 se puede instalar fácilmente a través del Administrador de Paquetes NuGet. Simplemente visita la página de NuGet y sigue 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 de .NET: IronPrint admite 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 Proyecto: Ya sea que estés desarrollando aplicaciones móviles (Xamarin, MAUI, Avalonia), de escritorio (WPF, MAUI, Windows Avalonia) o de consola, IronPrint tiene todo lo que necesitas.

    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)
$vbLabelText   $csharpLabel

System.Printing

El espacio de nombres System.Printing en C# contiene clases e interfaces que permiten a los desarrolladores interactuar de manera programática con impresoras, colas de impresión, servidores de impresión y trabajos de impresió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. PrintServer: 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 profundizar en el código, aseguremos tener una comprensión básica de cómo funciona la impresión con System.Printing:

  5. PrintQueue Selección: Necesitas identificar el objeto PrintQueue que representa la impresora que deseas usar para imprimir.

  6. PrintTicket Configuración: Opcionalmente, puedes configurar el objeto PrintTicket para especificar configuraciones de impresión como el tamaño del papel, la orientación y el número de copias.

  7. Impresión de documentos: Finalmente, envías el documento a imprimir a la PrintQueue seleccionada.

    Implementación de 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
$vbLabelText   $csharpLabel

IronPrint Vs System.Printing

Cómo imprimir con impresora de red en C#: Figura 1 - Una tabla comparativa rápida entre IronPrint vs System.Printing

Esta tabla ofrece una visión general rápida de las características y cualidades de IronPrint y System.Printing, ayudando a los desarrolladores a tomar decisiones informadas basadas en sus requisitos específicos y los objetivos de la 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 - Proporcione un nombre para el proyecto

Seleccione la versión .NET.

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

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 - Buscar IronPrint a través del Administrador 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
$vbLabelText   $csharpLabel

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 una 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
$vbLabelText   $csharpLabel

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 siendo agregado 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
$vbLabelText   $csharpLabel

Código Explicación

  1. Usando ShowPrintDialog de IronPrint podemos imprimir con diálogo

  2. Una vez abierto el cuadro de diálogo, seleccione la impresora deseada para imprimir el documento.

Salida

Cómo imprimir con una impresora de red en C#: Figura 8 - Seleccione 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. PaperSize: Especifica las dimensiones del papel utilizado por la impresora.

  2. PaperOrientation: 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. NumberOfCopies: Indica el número de copias idénticas que se imprimirán para un documento.

  5. PrinterName: Especifica el nombre de la impresora designada para tareas de impresión.

  6. PaperMargins: Determina los márgenes para la impresión, medidos en milímetros.

  7. Grayscale: 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
$vbLabelText   $csharpLabel

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 pública.

  3. El método Main sirve como punto de entrada del programa.

  4. Dentro del método Main:

    • Se instancia un objeto PrintSettings llamado printSettings para configurar ajustes de impresión personalizados.

    • La propiedad Dpi de printSettings se establece en 150, lo que indica 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 está configurada en PaperOrientation.Portrait, lo que indica que el documento se imprimirá en orientación vertical.
  5. Por último, la impresora. El método de impresión se invoca con los parámetros "sample.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 que muestra 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 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 cada uno tiene sus fortalezas y es adecuado para diferentes escenarios. IronPrint proporciona una solución optimizada y multiplataforma con un enfoque en la simplicidad y la versatilidad, mientras que System.Printing ofrece integración nativa y control detallado, particularmente 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.

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.
SIGUIENTE >
Cómo imprimir un código QR en C#

¿Listo para empezar? Versión: 2025.4 acaba de salir

Ver licencias >