Imprimindo PDF em uma Impressora XPS

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

Imprimir PDF em impressora XPS em C#

Você pode imprimir um arquivo PDF em uma impressora XPS, ou em outra impressora soft, usando a classe PdfViewer. Para fazer isso, crie um objeto da classe PdfViewer e abra o arquivo PDF usando o método BindPdf. Você pode configurar diferentes ajustes de impressão usando as classes PrinterSettings e PageSettings. Você também precisa definir a propriedade PrinterName para a impressora XPS ou outra impressora soft que você tenha instalado.

Finalmente, use o método PrintDocumentWithSettings para imprimir o PDF na impressora XPS ou outra impressora soft. O seguinte trecho de código mostra como imprimir o arquivo PDF em uma impressora XPS.

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

    // Abrir arquivo PDF de entrada
    viewer.BindPdf(_dataDir + "input.pdf");

    // Definir atributos para impressão
    viewer.AutoResize = true;         // Imprimir o arquivo com tamanho ajustado
    viewer.AutoRotate = true;         // Imprimir o arquivo com rotação ajustada
    viewer.PrintPageDialog = false;   // Não mostrar o diálogo de número de página ao imprimir

    // Criar objetos para configurações de impressora e página e PrintDocument
    System.Drawing.Printing.PrinterSettings ps = new System.Drawing.Printing.PrinterSettings();
    System.Drawing.Printing.PageSettings pgs = new System.Drawing.Printing.PageSettings();

    // Definir nome da impressora XPS/PDF
    ps.PrinterName = "Microsoft XPS Document Writer";
    // Ou definir a impressora PDF
    // Ps.PrinterName = "Adobe PDF";

    // Definir tamanho da página (se necessário)
    pgs.PaperSize = new System.Drawing.Printing.PaperSize("A4", 827, 1169);

    // Definir margens da página (se necessário)
    pgs.Margins = new System.Drawing.Printing.Margins(0, 0, 0, 0);

    // Imprimir documento usando configurações de impressora e página
    viewer.PrintDocumentWithSettings(pgs, ps);

    // Fechar o arquivo PDF após a impressão
    viewer.Close();
}