Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
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 este propósito, Microsoft C# ofrece 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#.
Crear una aplicación C# Windows Forms
Importar System.Drawing.Printing usando la palabra clave
Diseñar el formulario con un botón y otros controles necesarios
Manejo del evento PrintDocument utilizando el evento PrintPage
Iniciar trabajo de Impresión
Antes de empezar, asegúrate de cumplir los siguientes requisitos previos:
Un entorno de desarrollo C# (por ejemplo, Visual Studio).
Permisos adecuados para interactuar con las impresoras.
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:
Si no tienes instalado Visual Studio, descárgalo e instálalo desde el sitio web oficial: Visual Studio.
Abre Visual Studio.
En el cuadro de diálogo "Crear un nuevo proyecto", seleccione "Aplicación de formularios de Windows (.NET Framework)" o "Aplicación de formularios de Windows (.NET Core)" según su preferencia.
Indique el nombre y la ubicación de su proyecto.
Una vez creado el proyecto, se mostrará el formulario principal en el diseñador.
Utilice la caja de herramientas para añadir controles como botones, cuadros de texto, etiquetas, etc., a su formulario según sea necesario.
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
Estos espacios de nombres proporcionan clases esenciales como PrintDocument, PrintPageEventArgs y PrintController para manejar operaciones de impresión.
La clase PrintDocument es una piedra angular para la impresión en C#. Maneje su evento PrintPage para definir qué contenido imprimir y cómo debe formatearse. Empecemos con un ejemplo sencillo de impresión del contenido de un fichero de texto:
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
// Specify the file path
string filePath = "C:\\path\\to\\your\\file.txt";
// Read the content of the file
string line = System.IO.File.ReadAllText(filePath);
// Create a Font object (adjust as needed)
Font font = new Font("Arial", 12);
// Create a RectangleF to define the printing area
RectangleF area = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);
// Draw the content to the printing area
e.Graphics.DrawString(line, font, Brushes.Black, area);
// Set HasMorePages to false to indicate that there are no more pages to print
e.HasMorePages = false;
}
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
// Specify the file path
string filePath = "C:\\path\\to\\your\\file.txt";
// Read the content of the file
string line = System.IO.File.ReadAllText(filePath);
// Create a Font object (adjust as needed)
Font font = new Font("Arial", 12);
// Create a RectangleF to define the printing area
RectangleF area = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);
// Draw the content to the printing area
e.Graphics.DrawString(line, font, Brushes.Black, area);
// Set HasMorePages to false to indicate that there are no more pages to print
e.HasMorePages = false;
}
Private Sub printDocument1_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
' Specify the file path
Dim filePath As String = "C:\path\to\your\file.txt"
' Read the content of the file
Dim line As String = System.IO.File.ReadAllText(filePath)
' Create a Font object (adjust as needed)
Dim font As New Font("Arial", 12)
' Create a RectangleF to define the printing area
Dim area As New RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height)
' Draw the content to the printing area
e.Graphics.DrawString(line, font, Brushes.Black, area)
' Set HasMorePages to false to indicate that there are no more pages to print
e.HasMorePages = False
End Sub
Este ejemplo lee el contenido de un archivo de texto y lo imprime utilizando la fuente y el formato especificados.
Inicie el trabajo de impresión creando una instancia de la clase PrintDocument, adjuntando el controlador de eventos PrintPage y luego activando 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);
// Optionally, display a print dialog for user configuration
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);
// Optionally, display a print dialog for user configuration
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
' Optionally, display a print dialog for user configuration
Dim printDialog As New PrintDialog()
If printDialog.ShowDialog() = DialogResult.OK Then
pd.PrinterSettings = printDialog.PrinterSettings
pd.Print()
End If
End Sub
Este código crea una instancia de PrintDocument, adjunta el controlador 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 imprimirá en el nombre de la impresora predeterminada (Microsoft Print to PDF) en el cuadro de diálogo de impresión como se muestra a continuación:
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.
IronPrint es una biblioteca de impresión integral desarrollada por Iron Software, diseñada para integrarse sin problemas con 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.
Soporte de Formato: IronPrint admite una 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 impresión.
Configuraciones personalizables: Los desarrolladores tienen la flexibilidad de personalizar las configuraciones de impresión según los requisitos de su aplicación. Esto incluye opciones para establecer DPI (puntos por pulgada), especificar la orientación del papel (vertical u horizontal) y controlar el número de copias.
Cuadro de diálogo de impresión: IronPrint facilita una experiencia de usuario fluida al permitir a los desarrolladores mostrar un cuadro de 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.
Compatibilidad multiplaforma: IronPrint va más allá de las limitaciones de la plataforma, ofreciendo compatibilidad con una diversa gama de entornos, incluidos Windows (7+), macOS (10+), iOS (11+) y Android API 21+ (v5 "Lollipop"). Se integra perfectamente con diferentes tipos de proyectos, como Móvil (Xamarin, MAUI y Avalonia), Escritorio (WPF, MAUI y Windows Avalonia) y Consola (App y Biblioteca).
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#.
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
Imprimir un archivo con IronPrint es muy sencillo. Puede utilizar la clase Printer, especificando la ruta del archivo al método Print para imprimir PDF de forma silenciosa:
using IronPrint;
class Program
{
// static void main
public static void Main()
{
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
// Specify the file path
var document = "C:\\path\\to\\your\\file.pdf";
// Print PDFs
Printer.Print(document);
}
}
using IronPrint;
class Program
{
// static void main
public static void Main()
{
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
// Specify the file path
var document = "C:\\path\\to\\your\\file.pdf";
// Print PDFs
Printer.Print(document);
}
}
Imports IronPrint
Friend Class Program
' static void main
Public Shared Sub Main()
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
' Specify the file path
Dim document = "C:\path\to\your\file.pdf"
' Print PDFs
Printer.Print(document)
End Sub
End Class
Este ejemplo demuestra cómo imprimir un archivo PDF, pero IronPrint admite una variedad de formatos de archivo, incluidos PDF, PNG, HTML, TIFF, GIF, JPEG, IMAGE y BITMAP.
IronPrint le permite personalizar la configuración de impresión según los requisitos de su aplicación. Puedes configurar ajustes como DPI, número de copias, orientación del papel y más usando 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...");
// Specify the file path
string filePath = "C:\\path\\to\\your\\file.pdf";
// Configure print settings
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 300;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Landscape;
// Print the document with custom settings
Printer.Print(filePath, printSettings);
// Print using the Print dialog
Printer.ShowPrintDialog(filePath, printSettings);
}
}
using IronPrint;
class Program
{
public static void Main()
{
IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
Console.WriteLine("Printing Started...");
// Specify the file path
string filePath = "C:\\path\\to\\your\\file.pdf";
// Configure print settings
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 300;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Landscape;
// Print the document with custom settings
Printer.Print(filePath, printSettings);
// Print using the Print dialog
Printer.ShowPrintDialog(filePath, printSettings);
}
}
Imports IronPrint
Friend Class Program
Public Shared Sub Main()
IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
Console.WriteLine("Printing Started...")
' Specify the file path
Dim filePath As String = "C:\path\to\your\file.pdf"
' Configure print settings
Dim printSettings As New PrintSettings()
printSettings.Dpi = 300
printSettings.NumberOfCopies = 2
printSettings.PaperOrientation = PaperOrientation.Landscape
' Print the document with custom settings
Printer.Print(filePath, printSettings)
' Print using the Print dialog
Printer.ShowPrintDialog(filePath, printSettings)
End Sub
End Class
Este es el aspecto del resultado:
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 usar el método GetPrinterNames.
// Retrieve printers' name
List<string> printersName = Printer.GetPrinterNames();
foreach (string printer in printersName)
{
Console.WriteLine(printer);
}
// Retrieve printers' name
List<string> printersName = Printer.GetPrinterNames();
foreach (string printer in printersName)
{
Console.WriteLine(printer);
}
' Retrieve printers' name
Dim printersName As List(Of String) = Printer.GetPrinterNames()
For Each printer As String In printersName
Console.WriteLine(printer)
Next printer
Para obtener información más detallada, visite la página de documentación.
Imprimir archivos en C# es una tarea manejable con las capacidades proporcionadas por el espacio de nombres System.Drawing.Printing. Al gestionar el evento PrintPage y utilizar la clase PrintDocument, puedes adaptar el proceso de impresión a tus requisitos específicos. 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 una página de prueba gratuita para más información. Descarga la biblioteca desde aquí y pruébala.