Impresión de PDF en una impresora XPS

El siguiente fragmento de código también funciona con la biblioteca Aspose.PDF.Drawing.

Imprimir PDF en impresora XPS en C#

Puedes imprimir un archivo PDF en una impresora XPS, o en alguna otra impresora virtual, utilizando la clase PdfViewer. Para hacer esto, crea un objeto de la clase PdfViewer y abre el archivo PDF utilizando el método BindPdf. Puedes configurar diferentes ajustes de impresión utilizando las clases PrinterSettings y PageSettings. También necesitas establecer la propiedad PrinterName en la impresora XPS u otra impresora virtual que tengas instalada.

Finalmente, usa el método PrintDocumentWithSettings para imprimir el PDF en la impresora XPS u otra impresora virtual. El siguiente fragmento de código te muestra cómo imprimir el archivo PDF en una impresora XPS.

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

    // Abrir archivo PDF de entrada
    viewer.BindPdf(_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 mostrar el diálogo de número de página al imprimir

    // Crear objetos para la configuración 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();

    // Establecer nombre de la impresora XPS/PDF
    ps.PrinterName = "Microsoft XPS Document Writer";
    // O establecer la impresora PDF
    // Ps.PrinterName = "Adobe PDF";

    // 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 configuración de impresora y página
    viewer.PrintDocumentWithSettings(pgs, ps);

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