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 unMé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 utilizando la palabra clave
Diseñar el formulario con un botón y otros controles necesarios
Manejo del Evento PrintDocument usando 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 Visual Studio instalado, descárgalo e instálalo desde el sitio web oficial:Estudio Visual.
Abre Visual Studio.
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.
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 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)
{
// 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.
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);
// 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 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.
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.
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.
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.
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).
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ónImpresora 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";
// 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 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 personalizarconfiguració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...");
// 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 utilizarGetPrinterNames método.
// 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áginadocumentació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 deaquí y pruébalo.
9 productos API .NET para sus documentos de oficina