Impresión de PDF en .NET Framework

Imprimir archivo PDF en C# - Imprimir archivo PDF en la impresora predeterminada usando las configuraciones de impresora y página

Este artículo describe cómo imprimir un archivo PDF en la impresora predeterminada utilizando las configuraciones de impresora y página en C#.

La clase PdfViewer permite imprimir un archivo PDF en la impresora predeterminada. Necesitas crear un objeto PdfViewer y abrir el PDF utilizando el método BindPdf. Para especificar diferentes configuraciones de impresión, utiliza las clases PageSettings y PrinterSettings. Finalmente, llama al método PrintDocumentWithSettings para imprimir el PDF en la impresora predeterminada. El siguiente fragmento de código muestra cómo imprimir PDF en la impresora predeterminada con configuraciones de impresora y página.

public static void SimplePrint()
{
    // Crear objeto PdfViewer
    PdfViewer viewer = new PdfViewer();

    // Abrir archivo PDF de entrada
    viewer.BindPdf(System.IO.Path.Combine(_dataDir, "input.pdf"));

    // Establecer atributos para la impresión
    viewer.AutoResize = true;         // Imprimir el archivo con tamaño ajustado
    viewer.AutoRotate = true;         // Imprimir el archivo con rotación ajustada
    viewer.PrintPageDialog = false;   // No producir el diálogo de número de página al imprimir

    // Crear objetos para configuraciones de impresora y página y PrintDocument
    System.Drawing.Printing.PrinterSettings ps = new System.Drawing.Printing.PrinterSettings();
    System.Drawing.Printing.PageSettings pgs = new System.Drawing.Printing.PageSettings();
    System.Drawing.Printing.PrintDocument prtdoc = new System.Drawing.Printing.PrintDocument();

    // Establecer nombre de la impresora
    ps.PrinterName = prtdoc.PrinterSettings.PrinterName;

    // Establecer tamaño de página (si es necesario)
    pgs.PaperSize = new System.Drawing.Printing.PaperSize("A4", 827, 1169);

    // Establecer márgenes de página (si es necesario)
    pgs.Margins = new System.Drawing.Printing.Margins(0, 0, 0, 0);

    // Imprimir documento usando configuraciones de impresora y página
    viewer.PrintDocumentWithSettings(pgs, ps);

    // Cerrar el archivo PDF después de imprimir
    viewer.Close();
}

Para mostrar un diálogo de impresión, intente usar el siguiente fragmento de código:

System.Windows.Forms.PrintDialog printDialog = new System.Windows.Forms.PrintDialog();
if (printDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    // El código de impresión del documento va aquí
    // Imprimir documento usando configuraciones de impresora y página
    viewer.PrintDocumentWithSettings(pgs, ps);
}