USO DE IRONPRINT

Cómo imprimir un archivo en una impresora en C#

Actualizado 29 de abril, 2024
Compartir:

Imprimir archivos PDF directamente desde una aplicación C# puede ser una función muy valiosa, especialmente cuando se desarrollan aplicaciones que requieren una integración perfecta con documentos PDF físicos. Si está trabajando en un sistema de gestión de documentos PDF, una aplicación de punto de venta o cualquier otro software que se ocupe de la impresión, C# proporciona un sólido conjunto de bibliotecas para facilitar esta funcionalidad del método de impresión de PDF.

Para ello, Microsoft C# proporciona un Método de impresión para imprimir archivos PDF en una impresora predeterminada. En este artículo, exploraremos los pasos para imprimir un archivo PDF en una impresora utilizando C#.

Cómo imprimir un archivo en una impresora en C#

  1. Crear una aplicación C# Windows Forms
  2. Importar System.Drawing.Printing utilizando la palabra clave
  3. Diseñar el formulario con un botón y otros controles necesarios
  4. Manejo del Evento PrintDocument usando el Evento PrintPage.
  5. Iniciar trabajo de **Impresión
  6. Ejecute la aplicación y pulse el botón Imprimir para imprimir

Requisitos previos

Antes de empezar, asegúrate de cumplir los siguientes requisitos previos:

  1. Un entorno de desarrollo C# (por ejemplo, Visual Studio).
  2. Permisos adecuados para interactuar con las impresoras.
  3. Conocimientos básicos de programación en C#.

Paso 1: Configurar el proyecto

Cree un nuevo proyecto C# o abra uno existente en su entorno de desarrollo preferido. Asegúrese de que su proyecto está configurado correctamente y de que dispone de los permisos necesarios para interactuar con la impresora. El siguiente proceso le permite completar este proceso:

Instalar Visual Studio

Si no tienes Visual Studio instalado, descárgalo e instálalo desde el sitio web oficial: Visual Studio.

Crear un nuevo proyecto

  1. Abre Visual Studio.
  2. Haga clic en "Crear un nuevo proyecto".

    Cómo Imprimir un Archivo a una Impresora en C#: Figura 1 - Nuevo Proyecto

Elegir plantilla de proyecto

  1. En el cuadro de diálogo "Crear un nuevo proyecto", seleccione "Windows Forms App (.NET Framework)" o "Windows Forms App (.NET Core)"según sus preferencias.

    Cómo Imprimir un Archivo a una Impresora en C#: Figura 2 - Windows Forms App

  2. Indique el nombre y la ubicación de su proyecto.

    Cómo Imprimir un Archivo a una Impresora en C#: Figura 3 - Configuración del Proyecto

  3. Haga clic en Siguiente y, en la pantalla de información adicional, seleccione .NET Framework y haga clic en "Crear".

Diseñar el formulario

  1. Una vez creado el proyecto, se mostrará el formulario principal en el diseñador.
  2. Utilice la caja de herramientas para añadir controles como botones, cuadros de texto, etiquetas, etc., a su formulario según sea necesario.
  3. Personalice las propiedades de cada control mediante la ventana Propiedades.

    Cómo Imprimir un Archivo a una Impresora en C#: Figura 4 - Diseño de formularios

  4. Ajuste la apariencia y el diseño del formulario.

    Cómo Imprimir un Archivo a una Impresora en C#: Figura 5 - Formulario de impresión

Paso 2: Importación de las bibliotecas necesarias

En su archivo de código C#, importe los espacios de nombres necesarios para acceder a las clases y métodos relacionados con la impresión.

using System.Drawing.Printing;
using System.Drawing.Printing;
Imports System.Drawing.Printing
VB   C#

Estos espacios de nombres proporcionan clases esenciales como PrintDocument, PrintPageEventArgs, y PrintController para manejar las operaciones de impresión.

Paso 3: Manejo del evento PrintDocument

La clase PrintDocument es la piedra angular de la impresión en C#. Maneja su evento PrintPage para definir qué contenido imprimir y cómo debe ser formateado. Empecemos con un ejemplo sencillo de impresión del contenido de un fichero de texto:

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
    //  Especifique la ruta del archivo
    string filePath = "C:\\path\\to\\your\\file.txt";
    //  Leer el contenido del fichero
    string line = System.IO.File.ReadAllText(filePath);
    //  Cree un objeto Fuente (ajústelo según sea necesario)
    Font font = new Font("Arial", 12);
    //  Crear un RectánguloF para definir el área de impresión
    RectangleF area = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);
    //  Dibujar el contenido en el área de impresión
    e.Graphics.DrawString(line, font, Brushes.Black, area);
    //  Establecer HasMorePages a false para indicar que no hay más páginas para imprimir
    e.HasMorePages = false;
}
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
    //  Especifique la ruta del archivo
    string filePath = "C:\\path\\to\\your\\file.txt";
    //  Leer el contenido del fichero
    string line = System.IO.File.ReadAllText(filePath);
    //  Cree un objeto Fuente (ajústelo según sea necesario)
    Font font = new Font("Arial", 12);
    //  Crear un RectánguloF para definir el área de impresión
    RectangleF area = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);
    //  Dibujar el contenido en el área de impresión
    e.Graphics.DrawString(line, font, Brushes.Black, area);
    //  Establecer HasMorePages a false para indicar que no hay más páginas para imprimir
    e.HasMorePages = false;
}
Private Sub printDocument1_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
	'  Especifique la ruta del archivo
	Dim filePath As String = "C:\path\to\your\file.txt"
	'  Leer el contenido del fichero
	Dim line As String = System.IO.File.ReadAllText(filePath)
	'  Cree un objeto Fuente (ajústelo según sea necesario)
	Dim font As New Font("Arial", 12)
	'  Crear un RectánguloF para definir el área de impresión
	Dim area As New RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height)
	'  Dibujar el contenido en el área de impresión
	e.Graphics.DrawString(line, font, Brushes.Black, area)
	'  Establecer HasMorePages a false para indicar que no hay más páginas para imprimir
	e.HasMorePages = False
End Sub
VB   C#

Este ejemplo lee el contenido de un archivo de texto y lo imprime utilizando la fuente y el formato especificados.

Paso 4: Iniciar el trabajo de impresión

Iniciar el trabajo de impresión mediante la creación de una instancia de la clase PrintDocument, adjuntando el controlador de eventos PrintPage, y luego desencadenar el proceso de impresión. Opcionalmente, puede mostrar un diálogo de impresión para la configuración del usuario:

private void btnPrint_Click(object sender, EventArgs e)
{
    PrintDocument pd = new PrintDocument();
    pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
    //  Opcionalmente, mostrar un diálogo de impresión para la configuración del usuario
    PrintDialog printDialog = new PrintDialog();
    if (printDialog.ShowDialog() == DialogResult.OK)
    {
        pd.PrinterSettings = printDialog.PrinterSettings;
        pd.Print();
    }
}
private void btnPrint_Click(object sender, EventArgs e)
{
    PrintDocument pd = new PrintDocument();
    pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
    //  Opcionalmente, mostrar un diálogo de impresión para la configuración del usuario
    PrintDialog printDialog = new PrintDialog();
    if (printDialog.ShowDialog() == DialogResult.OK)
    {
        pd.PrinterSettings = printDialog.PrinterSettings;
        pd.Print();
    }
}
Private Sub btnPrint_Click(ByVal sender As Object, ByVal e As EventArgs)
	Dim pd As New PrintDocument()
	AddHandler pd.PrintPage, AddressOf printDocument1_PrintPage
	'  Opcionalmente, mostrar un diálogo de impresión para la configuración del usuario
	Dim printDialog As New PrintDialog()
	If printDialog.ShowDialog() = DialogResult.OK Then
		pd.PrinterSettings = printDialog.PrinterSettings
		pd.Print()
	End If
End Sub
VB   C#

Este código crea una instancia PrintDocument, adjunta el manejador de eventos PrintPage, y luego imprime el documento. El diálogo de impresión opcional permite a los usuarios configurar los ajustes de impresión antes de iniciar el trabajo de impresión. Imprime el documento de texto en una impresora conectada localmente. Si no está presente, el archivo se imprime en la impresora predeterminada. (Microsoft Imprimir en PDF) en el cuadro de diálogo Imprimir, como se muestra a continuación:

Cómo Imprimir un Archivo a una Impresora en C#: Figura 6 - Diálogo de impresión de Microsoft

Impresión avanzada en C# a través de la biblioteca IronPrint

Cuando se trata de manejar la funcionalidad de impresión en aplicaciones de consola C# de forma eficiente y efectiva, la librería IronPrint proporciona una potente solución.

Introducción a IronPrint

IronPrint es una completa biblioteca de impresión desarrollada por Iron Software, diseñada para integrarse perfectamente con las aplicaciones .NET. Tanto si trabaja en un proyecto de escritorio, web o móvil, IronPrint ofrece funciones versátiles de impresión de documentos PDF, admite varios formatos de archivo y proporciona ajustes de impresión personalizables.

Cómo Imprimir un Archivo a una Impresora en C#: Figura 7 - IronPrint

Características principales

  1. Soporte de formatos: IronPrint admite una gran variedad de formatos de documentos, incluidos PDF, PNG, HTML, TIFF, GIF, JPEG y BITMAP. Esta versatilidad garantiza que los desarrolladores puedan trabajar con diferentes tipos de contenido para imprimir.
  2. Ajustes personalizables: Los desarrolladores tienen la flexibilidad de personalizar los ajustes de impresión según los requisitos de su aplicación. Incluye opciones para ajustar los PPP (puntos por pulgada)Especifique la orientación del papel (retrato o paisaje)y controlar el número de copias.
  3. Diálogo de impresión: IronPrint facilita una experiencia de usuario fluida permitiendo a los desarrolladores mostrar un diálogo de impresión antes de imprimir. Esto puede ser útil en situaciones en las que los usuarios necesitan interactuar con el proceso de impresión y seleccionar opciones específicas.
  4. Compatibilidad multiplataforma: IronPrint va más allá de las limitaciones de las plataformas y ofrece compatibilidad con una amplia gama de entornos, incluido Windows. (7+)macOS (10+)iOS (11+)y Android API 21+ (v5 "Lollipop"). Se integra a la perfección con distintos tipos de proyectos, como Mobile (Xamarin, MAUI y Avalonia)Escritorio (WPF, MAUI y Windows Avalonia)y Consola (Aplicación y biblioteca).
  5. Amplio soporte de versiones .NET: Tanto si utiliza la última versión de .NET 8, 7, 6 o Core 3.1+, IronPrint le cubre. También amplía su compatibilidad con .NET Framework (4.6.2+)garantizando la compatibilidad en distintos entornos de desarrollo.

Instalación de IronPrint

Antes de sumergirse en la impresión de archivos, es necesario instalar la biblioteca IronPrint. Puede hacerlo fácilmente utilizando la consola del gestor de paquetes NuGet:

Install-Package IronPrint

Esta línea de comandos descargará e instalará la biblioteca IronPrint en su proyecto C#.

Inicialización de IronPrint

Una vez instalado IronPrint, debe inicializarlo en su código C#. Importe el espacio de nombres IronPrint y establezca la clave de licencia para garantizar una funcionalidad adecuada:

using IronPrint;
class Program
{
    public static void Main()
    {
        License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
    }
}
using IronPrint;
class Program
{
    public static void Main()
    {
        License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
    }
}
Imports IronPrint
Friend Class Program
	Public Shared Sub Main()
		License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
	End Sub
End Class
VB   C#

Imprimir un archivo con IronPrint

Imprimir un archivo con IronPrint es muy sencillo. Puede utilizar la función Impresora especificando la ruta del archivo al método Print para imprimir el PDF en silencio:

using IronPrint;
class Program
{
//  static void main
    public static void Main()
    {
        License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
        //  Especifique la ruta del archivo
        var document = "C:\\path\\to\\your\\file.pdf";
        //  Imprimir PDF
        Printer.Print(document);
    }
}
using IronPrint;
class Program
{
//  static void main
    public static void Main()
    {
        License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
        //  Especifique la ruta del archivo
        var document = "C:\\path\\to\\your\\file.pdf";
        //  Imprimir PDF
        Printer.Print(document);
    }
}
Imports IronPrint
Friend Class Program
'  static void main
	Public Shared Sub Main()
		License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
		'  Especifique la ruta del archivo
		Dim document = "C:\path\to\your\file.pdf"
		'  Imprimir PDF
		Printer.Print(document)
	End Sub
End Class
VB   C#

Este ejemplo muestra la impresión de un archivo PDF, pero IronPrint admite diversos formatos de archivo, como PDF, PNG, HTML, TIFF, GIF, JPEG, IMAGE y BITMAP.

Personalizar la configuración de impresión

IronPrint le permite personalizar configuración de impresión según los requisitos de su aplicación. Puede configurar opciones como los PPP, el número de copias, la orientación del papel, etc. mediante la clase PrintSettings. El siguiente ejemplo de código le ayuda a establecer la configuración de página y a imprimir documentos PDF:

using IronPrint;
class Program
{
    public static void Main()
    {
        IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
    Console.WriteLine("Printing Started...");
        //  Especifique la ruta del archivo
        string filePath = "C:\\path\\to\\your\\file.pdf";
        //  Configurar los ajustes de impresión
        PrintSettings printSettings = new PrintSettings();
        printSettings.Dpi = 300;
        printSettings.NumberOfCopies = 2;
        printSettings.PaperOrientation = PaperOrientation.Landscape;
        //  Imprimir el documento con ajustes personalizados
        Printer.Print(filePath, printSettings);
    //  Imprimir con el cuadro de diálogo Imprimir
    Printer.ShowPrintDialog(filePath, printSettings);
    }
}
using IronPrint;
class Program
{
    public static void Main()
    {
        IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
    Console.WriteLine("Printing Started...");
        //  Especifique la ruta del archivo
        string filePath = "C:\\path\\to\\your\\file.pdf";
        //  Configurar los ajustes de impresión
        PrintSettings printSettings = new PrintSettings();
        printSettings.Dpi = 300;
        printSettings.NumberOfCopies = 2;
        printSettings.PaperOrientation = PaperOrientation.Landscape;
        //  Imprimir el documento con ajustes personalizados
        Printer.Print(filePath, printSettings);
    //  Imprimir con el cuadro de diálogo Imprimir
    Printer.ShowPrintDialog(filePath, printSettings);
    }
}
Imports IronPrint
Friend Class Program
	Public Shared Sub Main()
		IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
	Console.WriteLine("Printing Started...")
		'  Especifique la ruta del archivo
		Dim filePath As String = "C:\path\to\your\file.pdf"
		'  Configurar los ajustes de impresión
		Dim printSettings As New PrintSettings()
		printSettings.Dpi = 300
		printSettings.NumberOfCopies = 2
		printSettings.PaperOrientation = PaperOrientation.Landscape
		'  Imprimir el documento con ajustes personalizados
		Printer.Print(filePath, printSettings)
	'  Imprimir con el cuadro de diálogo Imprimir
	Printer.ShowPrintDialog(filePath, printSettings)
	End Sub
End Class
VB   C#

Este es el aspecto del resultado:

Cómo Imprimir un Archivo a una Impresora en C#: Figura 8 - Salida de Impresión Personalizada

Si la impresora física no está instalada, se utiliza la impresora predeterminada para imprimir documentos PDF. Para obtener todas las impresoras disponibles, también puede utilizar GetPrinterNames método.

//  Recuperar el nombre de la impresora
List<string> printersName = Printer.GetPrinterNames();
foreach (string printer in printersName)
{
    Console.WriteLine(printer);
}
//  Recuperar el nombre de la impresora
List<string> printersName = Printer.GetPrinterNames();
foreach (string printer in printersName)
{
    Console.WriteLine(printer);
}
'  Recuperar el nombre de la impresora
Dim printersName As List(Of String) = Printer.GetPrinterNames()
For Each printer As String In printersName
	Console.WriteLine(printer)
Next printer
VB   C#

Para obtener información más detallada, visite la página documentación página.

Conclusión

Imprimir archivos en C# es una tarea manejable con las capacidades proporcionadas por el espacio de nombres System.Drawing.Printing. Manejando el evento PrintPage y utilizando la clase PrintDocument, puedes adaptar el proceso de impresión a tus necesidades específicas. Esta completa guía ha cubierto los pasos fundamentales para imprimir archivos desde una aplicación C#, ofreciéndole una base sólida para integrar esta funcionalidad en sus proyectos. Al explorar más a fondo, buscamos en IronPrint opciones de personalización adicionales, como el manejo de distintos tipos de archivos, la incorporación de imágenes y la mejora del formato en función de las necesidades de la aplicación.

La integración de IronPrint en su aplicación C# simplifica el proceso de impresión de archivos en una impresora. Gracias a su compatibilidad con varios formatos de archivo y a sus ajustes de impresión personalizables, IronPrint ofrece una solución sólida para los desarrolladores que deseen mejorar sus capacidades de impresión. Tanto si trabaja en un proyecto de escritorio, web o móvil, IronPrint agiliza el proceso de impresión, lo que lo convierte en un valioso complemento de su kit de herramientas .NET.

IronPrint ofrece un **Prueba gratuita para más información. Descargue la biblioteca de aquí y pruébalo.

< ANTERIOR
Cómo imprimir un código QR en C#
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,359 Ver licencias >
123