C# Imprimir Documentos PDF
Puede imprimir fácilmente un PDF en aplicaciones .NET con la ayuda de código Visual Basic o C#. Este tutorial le mostrará cómo utilizar las funciones de impresión de PDF de C# para imprimir mediante programación.
Cómo imprimir archivos PDF en C#
![Cómo imprimir archivos PDF en C#](/static-assets/pdf/images/how-to-print-pdf-file-in-csharp.png)
- Descargar la biblioteca Print to PDF C# Library
- Elija un archivo PDF de su ordenador
- Seleccionar una impresora específica para imprimir y establecer la resolución
- Compruebe la salida PDF de su impresora
- Seguimiento de los procesos de impresión con C#
Primer paso
1. Instalar IronPDF para C# Imprimir en PDF
Paso 1 - Instale la librería IronPDF C# PDF Library para todas las funcionalidades de impresión programática que verá en este tutorial. Descargar el DLL libre para el desarrollosi no, también puede instalar con NuGet y abra la biblioteca en su proyecto de Visual Studio.
Install-Package IronPdf
Tutorial
2. Crear un PDF e imprimir
Puede enviar un documento PDF directamente a una impresora de forma silenciosa o crear un System.Drawing.Printing.PrintDocument con el que se puede trabajar y enviar a diálogos de impresión GUI.
El siguiente código puede utilizarse para ambas opciones:
/**
Create and Print PDF
anchor-create-a-pdf-and-print
**/
using IronPdf;
// Crear un nuevo PDF e imprimirlo
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
using PdfDocument Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
// Enviar el PDF a la impresora predeterminada para imprimir
Pdf.Print();
//Para opciones avanzadas de impresión silenciosa en el mundo real, utilice PdfDocument.GetPrintDocument
//Recuerde añadir una referencia de ensamblado a System.Drawing.dll
System.Drawing.Printing.PrintDocument PrintDocYouCanWorkWith = Pdf.GetPrintDocument();
/**
Create and Print PDF
anchor-create-a-pdf-and-print
**/
using IronPdf;
// Crear un nuevo PDF e imprimirlo
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
using PdfDocument Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
// Enviar el PDF a la impresora predeterminada para imprimir
Pdf.Print();
//Para opciones avanzadas de impresión silenciosa en el mundo real, utilice PdfDocument.GetPrintDocument
//Recuerde añadir una referencia de ensamblado a System.Drawing.dll
System.Drawing.Printing.PrintDocument PrintDocYouCanWorkWith = Pdf.GetPrintDocument();
'''
'''Create and Print PDF
'''anchor-create-a-pdf-and-print
'''*
Imports IronPdf
' Crear un nuevo PDF e imprimirlo
Private Renderer As New IronPdf.ChromePdfRenderer()
Private PdfDocument As using
' Enviar el PDF a la impresora predeterminada para imprimir
Pdf.Print()
'Para opciones avanzadas de impresión silenciosa en el mundo real, utilice PdfDocument.GetPrintDocument
'Recuerde añadir una referencia de ensamblado a System.Drawing.dll
Dim PrintDocYouCanWorkWith As System.Drawing.Printing.PrintDocument = Pdf.GetPrintDocument()
Este es el método más sencillo para utilizar un C# Impresora PDF.
3. Impresión avanzada
IronPDF es bastante capaz de lidiar con características avanzadas de Impresión como encontrar el nombre de la impresora o configurarlo y establecer la resolución de la Impresora.
4. Especifique el nombre de la impresora
Para especificar el nombre de la impresora, basta con obtener el objeto de documento de impresión actual (con el uso del GetPrintDocument método del documento PDF)Utilice la propiedad PrinterSettings.PrinterName
de la siguiente manera:
/**
Specify Printer Name
anchor-specify-printer-name
**/
using (var ChromePdfRenderer = new ChromePdfRenderer())
{
using (var pdfDocument =
ChromePdfRenderer.RenderHtmlAsPdf(TestSources.HtmlTemplateBasicText()))
{
using (var printDocument = pdfDocument.GetPrintDocument())
{
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";
printDocument.Print();
}
}
}
/**
Specify Printer Name
anchor-specify-printer-name
**/
using (var ChromePdfRenderer = new ChromePdfRenderer())
{
using (var pdfDocument =
ChromePdfRenderer.RenderHtmlAsPdf(TestSources.HtmlTemplateBasicText()))
{
using (var printDocument = pdfDocument.GetPrintDocument())
{
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";
printDocument.Print();
}
}
}
'''
'''Specify Printer Name
'''anchor-specify-printer-name
'''*
Using ChromePdfRenderer As New ChromePdfRenderer()
Using pdfDocument = ChromePdfRenderer.RenderHtmlAsPdf(TestSources.HtmlTemplateBasicText())
Using printDocument = pdfDocument.GetPrintDocument()
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF"
printDocument.Print()
End Using
End Using
End Using
5. Resolución de la impresora
La resolución se refiere al número de píxeles que se imprimen, o se muestran, dependiendo de la salida. Puede establecer la resolución de su impresión a través de IronPDF haciendo uso de la opción DefaultPageSettings.PrinterResolution del documento PDF. He aquí una demostración muy rápida:
/**
Set Printer Resolution
anchor-set-printer-resolution
**/
using (var ChromePdfRenderer = new ChromePdfRenderer())
{
using (var pdfDocument =
ChromePdfRenderer.RenderHtmlAsPdf(TestSources.HtmlTemplateBasicText()))
{
using (var printDocument = pdfDocument.GetPrintDocument())
{
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";
printDocument.DefaultPageSettings.PrinterResolution = new PrinterResolution
{
**Kind = PrinterResolutionKind.Custom,**
**X = 1200,**
**Y = 1200**
**};**
printDocument.Print();
}
}
}
/**
Set Printer Resolution
anchor-set-printer-resolution
**/
using (var ChromePdfRenderer = new ChromePdfRenderer())
{
using (var pdfDocument =
ChromePdfRenderer.RenderHtmlAsPdf(TestSources.HtmlTemplateBasicText()))
{
using (var printDocument = pdfDocument.GetPrintDocument())
{
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";
printDocument.DefaultPageSettings.PrinterResolution = new PrinterResolution
{
**Kind = PrinterResolutionKind.Custom,**
**X = 1200,**
**Y = 1200**
**};**
printDocument.Print();
}
}
}
'''
'''Set Printer Resolution
'''anchor-set-printer-resolution
'''*
Using ChromePdfRenderer As New ChromePdfRenderer()
Using pdfDocument = ChromePdfRenderer.RenderHtmlAsPdf(TestSources.HtmlTemplateBasicText())
Using printDocument = pdfDocument.GetPrintDocument()
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF"
printDocument.DefaultPageSettings.PrinterResolution = New PrinterResolution With {
**Kind = PrinterResolutionKind.Custom,
** **X = 1200,
** **Y = 1200** **
}
** printDocument.Print()
End Using
End Using
End Using
Como puedes ver, he ajustado la resolución a un nivel personalizado: 1200 vertical y 1200 horizontal.
6. Método PrintToFile
El método PDFDocument.PrintToFile le permite imprimir el PDF en un archivo; sólo tiene que indicar la ruta del archivo de salida y especificar si desea o no ver una vista previa, por ejemplo:
/**
PrinttoFile
anchor-printtofile-method
**/
printDocument.PrintToFile(“PathToFile”, false);
/**
PrinttoFile
anchor-printtofile-method
**/
printDocument.PrintToFile(“PathToFile”, false);
'''
'''PrinttoFile
'''anchor-printtofile-method
'''*
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'printDocument.PrintToFile("PathToFile”, false);
El código anterior imprimirá en el archivo especificado y no incluirá una vista previa.
7. Seguimiento de los procesos de impresión mediante C#
La belleza de C# en conjunción con IronPDF es que cuando se trata de realizar un seguimiento de las páginas impresas, o cualquier cosa relacionada con la impresión, en realidad es bastante simple. En el siguiente ejemplo demostraré cómo cambiar el nombre de la impresora, la resolución, así como la forma de obtener un recuento de las páginas que se imprimieron.
/**
Tracing Printing Processes
anchor-tracing-printing-processes-using-c-num
**/
using (var ChromePdfRenderer = new ChromePdfRenderer())
{
using (var pdfDocument =
ChromePdfRenderer.RenderHtmlAsPdf(TestSources.HtmlTemplateBasicText()))
{
using (var printDocument = pdfDocument.GetPrintDocument())
{
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";
printDocument.DefaultPageSettings.PrinterResolution = new PrinterResolution
{
Kind = PrinterResolutionKind.Custom,
X = 1200,
Y = 1200
};
**var printedPages = 0;**
**printDocument.PrintPage += (sender, args) => printedPages++;**
**printDocument.Print();**
}
}
}
/**
Tracing Printing Processes
anchor-tracing-printing-processes-using-c-num
**/
using (var ChromePdfRenderer = new ChromePdfRenderer())
{
using (var pdfDocument =
ChromePdfRenderer.RenderHtmlAsPdf(TestSources.HtmlTemplateBasicText()))
{
using (var printDocument = pdfDocument.GetPrintDocument())
{
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";
printDocument.DefaultPageSettings.PrinterResolution = new PrinterResolution
{
Kind = PrinterResolutionKind.Custom,
X = 1200,
Y = 1200
};
**var printedPages = 0;**
**printDocument.PrintPage += (sender, args) => printedPages++;**
**printDocument.Print();**
}
}
}
'''
'''Tracing Printing Processes
'''anchor-tracing-printing-processes-using-c-num
'''*
Using ChromePdfRenderer As New ChromePdfRenderer()
Using pdfDocument = ChromePdfRenderer.RenderHtmlAsPdf(TestSources.HtmlTemplateBasicText())
Using printDocument = pdfDocument.GetPrintDocument()
printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF"
printDocument.DefaultPageSettings.PrinterResolution = New PrinterResolution With {
.Kind = PrinterResolutionKind.Custom,
.X = 1200,
.Y = 1200
}
**var printedPages = 0
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: ** **printDocument.PrintPage += (sender, args) => printedPages++;
AddHandler ** **printDocument.PrintPage, Sub(sender, args) printedPages
printedPages += 1
** **printDocument.Print()
**
End Using
End Using
End Using