Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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#.
Antes de empezar, asegúrate de cumplir los siguientes requisitos previos:
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 Visual Studio instalado, descárgalo e instálalo desde el sitio web oficial: Visual Studio.
Haga clic en "Crear un nuevo proyecto".
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.
Indique el nombre y la ubicación de su proyecto.
Personalice las propiedades de cada control mediante la ventana Propiedades.
Ajuste la apariencia y el diseño del formulario.
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 las operaciones de impresión.
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
Este ejemplo lee el contenido de un archivo de texto y lo imprime utilizando la fuente y el formato especificados.
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
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:
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 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.
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 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
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.
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
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 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
Para obtener información más detallada, visite la página documentación página.
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.
9 productos API .NET para sus documentos de oficina