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.



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()
VB   C#

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
VB   C#

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
VB   C#

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);
VB   C#

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
VB   C#