Impressão de PDF no .NET Framework

Imprimir Arquivo Pdf em C# - Imprimir Arquivo PDF para Impressora Padrão Usando Configurações de Impressora e de Página

Este artigo descreve como imprimir um arquivo PDF para a impressora padrão usando configurações de impressora e de página em C#.

A classe PdfViewer permite que você imprima um arquivo PDF na impressora padrão. Você precisa criar um objeto PdfViewer e abrir o PDF usando o método BindPdf. Para especificar diferentes configurações de impressão, use as classes PageSettings e PrinterSettings. Finalmente, chame o método PrintDocumentWithSettings para imprimir o PDF na impressora padrão. O seguinte trecho de código mostra como imprimir PDF para a impressora padrão com configurações de impressora e de página.

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

    // Abrir arquivo PDF de entrada
    viewer.BindPdf(System.IO.Path.Combine(_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 exibir o diálogo de número de página ao imprimir

    // Criar objetos para configurações de impressora e de página e 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();

    // Definir nome da impressora
    ps.PrinterName = prtdoc.PrinterSettings.PrinterName;

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

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

Para exibir um diálogo de impressão, tente usar o seguinte trecho de código:

System.Windows.Forms.PrintDialog printDialog = new System.Windows.Forms.PrintDialog();
if (printDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    // O código de impressão do documento vai aqui
    // Imprimir documento usando configurações de impressora e página
    viewer.PrintDocumentWithSettings(pgs, ps);
}