Saltar al pie de página
USANDO IRONPRINT

Cómo Imprimir con una Impresora de Red en C#

La impresión programática en impresoras de red es una tarea común en varias aplicaciones de software. Ya sea que estés construyendo una aplicación de escritorio, móvil o un servicio web, la capacidad de enviar documentos directamente a una impresora de red puede mejorar en gran medida la usabilidad y eficiencia de tu software. En este artículo, exploraremos cómo imprimir en una impresora de red utilizando C# e IronPrint de Iron Software.

Cómo imprimir con una impresora de red en C

  1. Crea un nuevo proyecto para imprimir documentos usando IronPrint.
  2. Instala IronPrint en un nuevo proyecto.
  3. Enumera las 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 configuración de impresión.

Configuración del entorno

Antes de sumergirse en la parte de codificación, asegurémonos de que nuestro entorno esté configurado correctamente. Para imprimir en una impresora de red en C#, necesitas tener lo siguiente:

  1. Asegúrate de que una impresora de red sea accesible desde la máquina donde se ejecutará tu aplicación C#.
  2. La dirección de red de la impresora (dirección IP o el nombre de la impresora de red).
  3. El/los controladores de impresora necesarios están instalados en la máquina.
  4. Privilegios administrativos para instalar impresoras o controladores si se requiere.

Impresión de hierro

Antes de sumergirnos en los detalles de la implementación, familiaricémonos con cómo comenzar con 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: Consulta la documentación oficial para una guía rápida de inicio y una referencia completa de la API.

Compatibilidad y Soporte: IronPrint ofrece amplia compatibilidad y soporte en varios entornos y tipos de proyecto:

  • Soporte de Versión de .NET: IronPrint es compatible con 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 está cubierto.

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

using IronPrint;

namespace IronPrintDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 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;

namespace IronPrintDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 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

Namespace IronPrintDemo
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Configure printer setting
			Dim printSettings As New PrintSettings()
			printSettings.Dpi = 220
			printSettings.NumberOfCopies = 10
			printSettings.PaperOrientation = PaperOrientation.Portrait

			' Print the document
			Printer.Print("awesomeIronPrint.pdf", printSettings)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Sistema.Impresión

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 programáticamente. 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, tales como su estado y propiedades.
  4. PrintTicket: Representa la configuración de un trabajo de impresión, incluidos el tamaño del papel, la orientación y la calidad de impresión.

Comenzando con System.Printing: Antes de entrar en el código, asegurémonos de que tenemos una comprensión básica de cómo funciona la impresión con System.Printing:

  1. Selección de PrintQueue: Necesitas identificar el objeto PrintQueue que representa la impresora que deseas usar para imprimir.
  2. Configuración de PrintTicket: 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.
  3. Impresión de Documentos: Finalmente, envías el documento para imprimir a la PrintQueue seleccionada.

Implementando la Impresión de Documentos con System.Printing: Ahora, repasemos el proceso de imprimir 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
            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
            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
			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

Impresión de hierro vs. System.Printing

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

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

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

Crea 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 - Creando una aplicación de consola

Proporciona un nombre de proyecto y una ubicación.

Cómo Imprimir con Impresora de Red en C#: Figura 3 - Proporciona un nombre al proyecto

Selecciona la versión de .NET.

Cómo Imprimir con Impresora de Red en C#: Figura 4 - Selecciona la versión adecuada de .NET

Ahora el proyecto está creado y listo para más codificación.

Paso 2: Instalar IronPrint en un nuevo proyecto

Instala IronPrint desde el Administrador de Paquetes de Visual Studio 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 se puede instalar utilizando el siguiente comando:

Install-Package IronPrint

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

Para listar los nombres de impresoras con IronPrint, usa el código a continuación:

using System;
using System.Collections.Generic;
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 System;
using System.Collections.Generic;
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 System
Imports System.Collections.Generic
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

Explicación del código

  1. Usa Printer.GetPrinterNames para obtener todos los controladores de impresoras disponibles.
  2. Imprime los nombres utilizando Console.WriteLine.

Resultado

Cómo Imprimir con Impresora de Red en C#: Figura 6 - Resultado ejemplo de impresoras disponibles

Paso 4: Imprima el documento PDF con IronPrint

Usa el código a continuación 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

Después de la ejecución, el documento se añade a la cola de impresión como se muestra en el resultado.

Resultado

Cómo Imprimir con Impresora de Red en C#: Figura 7 - Resultado ejemplo mostrando el documento añadido a la cola de impresión

Paso 5: Imprima el documento PDF usando IronPrint con Dialog

Usa el código a continuación para imprimir el documento con el cuadro de 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

Explicación del código

  1. Usando ShowPrintDialog de IronPrint podemos imprimir con Diálogo.
  2. Una vez abierto el cuadro de diálogo, selecciona la impresora requerida para imprimir el documento.

Resultado

Cómo Imprimir con Impresora de Red en C#: Figura 8 - Selecciona la impresora correcta

Paso 6: Impresión avanzada con configuración de impresión

La impresión de documentos con configuración avanzada es compatible en IronPrint. Soporta las siguientes Propiedades:

  1. PaperSize: Especifica las dimensiones del papel utilizadas por la impresora.
  2. PaperOrientation: Define la orientación del papel, como Automático, Vertical o Apaisado.
  3. DPI: Establece la resolución de impresión deseada en puntos por pulgada. El valor predeterminado es 300, comúnmente empleado en impresión comercial. El DPI real puede estar limitado por las capacidades de la impresora.
  4. NumberOfCopies: Indica el número de copias idénticas para imprimir de 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 imprimir en escala de grises. El valor predeterminado es falso.

Ahora veamos un ejemplo de código:

using IronPrint;

namespace IronPrintDemo
{
    public class Program
    {
        public static void Main()
        {
            // Configure custom print settings
            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 settings
            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 settings
			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

Explicación del código

  1. El código comienza importando el espacio de nombres necesario, IronPrint, que contiene las clases y métodos requeridos para imprimir.
  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.
    • Se establece la propiedad Dpi de printSettings 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.
    • Se establece la propiedad PaperOrientation de printSettings en PaperOrientation.Portrait, indicando que el documento se imprimirá en orientación vertical.
  5. Finalmente, se invoca el método Printer.Print con los parámetros "sample.pdf" (el nombre del documento a imprimir) y printSettings (los ajustes de impresión personalizados). Este método maneja el proceso de impresión utilizando la configuración especificada.

Resultado

Cómo Imprimir con Impresora de Red en C#: Figura 9 - Ejemplo de resultado 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. Agregar una clave de licencia de IronPrint hace que el proyecto sea funcional sin restricciones ni marcas de agua. Compra una licencia aquí o regístrate para obtener una clave de prueba gratuita de 30 días aquí.

Una vez obtenida la clave de licencia, la clave debe colocarse en el archivo appSettings.json en la aplicación.

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

Esto imprimirá documentos sin restricciones y marcas de agua.

Conclusión

En resumen, IronPrint y System.Printing tienen sus fortalezas y son adecuados para diferentes escenarios. IronPrint proporciona una solución simplificada 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 considerar sus requisitos específicos y objetivos de plataforma al elegir entre estas bibliotecas de impresión para sus proyectos en C#.

IronPrint simplifica la impresión de documentos dentro de aplicaciones .NET al proporcionar una API fácil de usar y una amplia compatibilidad en varias plataformas y tipos de proyectos. Siguiendo los pasos descritos en este artículo, puedes integrar sin problemas las funciones de impresión en tus proyectos .NET, mejorando su usabilidad y productividad. Explora las posibilidades con IronPrint y desbloquea un mundo de impresión de documentos eficiente dentro de tus aplicaciones.

Preguntas Frecuentes

¿Cómo puedo imprimir en una impresora de red usando C#?

Puede usar IronPrint para imprimir documentos en una impresora de red en C#. Permite enviar documentos directamente a una impresora de red con métodos que manejan tareas de impresión de manera programática.

¿Cuáles son los pasos para configurar la impresión en una impresora de red en C#?

Primero, asegúrese de tener acceso a una impresora de red y su dirección. Instale los controladores necesarios e IronPrint a través del Gestor de Paquetes NuGet. Luego, use los métodos de IronPrint para gestionar y enviar trabajos de impresión.

¿Cómo instalo IronPrint en mi proyecto de C#?

Puede instalar IronPrint usando el Gestor de Paquetes NuGet en Visual Studio o ejecutando el comando Install-Package IronPrint en la Consola del Administrador de Paquetes.

¿Qué versiones de .NET son compatibles con IronPrint?

IronPrint soporta C#, VB.NET y F#, y es compatible con .NET 8, 7, 6, 5, y Core 3.1+.

¿Puede usar IronPrint en diferentes sistemas operativos?

Sí, IronPrint es compatible con Windows (7+), macOS (10+), iOS (11+) y Android API 21+ (v5 'Lollipop').

¿Cómo se compara IronPrint con System.Printing en C#?

IronPrint ofrece una solución multiplataforma con un enfoque en la simplicidad, mientras que System.Printing proporciona una integración y control nativos para aplicaciones basadas en Windows.

¿Cómo puedo listar las impresoras de red disponibles usando IronPrint?

Puede usar el método Printer.GetPrinterNames() en IronPrint, que devuelve una lista de los controladores de impresora disponibles.

¿Qué opciones avanzadas de impresión están disponibles con IronPrint?

IronPrint soporta configuraciones avanzadas que incluyen tamaño de papel, orientación del papel, DPI, número de copias, nombre de la impresora, márgenes del papel y escala de grises.

¿Qué opciones de licencia están disponibles para IronPrint?

Las licencias de IronPrint se pueden comprar o puede registrarse para una prueba gratuita de 30 días en el sitio web de Iron Software. La clave de licencia se coloca en el archivo appSettings.json de su aplicación.

¿Qué comando se usa para instalar IronPrint a través de la línea de comandos?

Para instalar IronPrint a través de la línea de comandos, use el comando Install-Package IronPrint.

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 ...

Leer más