Como Imprimir com um Diálogo em C
O diálogo de impressão é a janela padrão do sistema operacional que permite aos usuários escolher uma impressora, definir o número de cópias, escolher um intervalo de páginas e ajustar as opções de papel antes de imprimir documento. Para aplicações de desktop onde os usuários precisam de controle sobre como e onde seus documentos são impressos, mostrar este diálogo é o comportamento esperado.
IronPrint fornece um único método — Printer.ShowPrintDialog() — que exibe o diálogo de impressão nativo, aplica as seleções do usuário e envia o documento para a impressora escolhida. Instalamos um pacote NuGet e escrevemos uma linha de código.
Início Rápido: Imprimir com um Diálogo
- Instale o IronPrint via NuGet:
Install-Package IronPrint - Adicione
using IronPrint;ao arquivo - Chame
Printer.ShowPrintDialog("filepath")para abrir o diálogo de impressão nativo - (Opcional) Passe um objeto
PrintSettingspara pré-configurar padrões do diálogo - O usuário seleciona impressora, cópias e opções, e então clica em Imprimir
-
Instale IronPrint com o Gerenciador de Pacotes NuGet
PM > Install-Package IronPrint -
Copie e execute este trecho de código.
using IronPrint; // Display the print dialog and print the document Printer.ShowPrintDialog("document.pdf"); -
Implante para testar em seu ambiente de produção.
Comece a usar IronPrint em seu projeto hoje com uma avaliação gratuita
- Instale a biblioteca de impressão IronPrint C#
- Chame `Printer.ShowPrintDialog("caminho do arquivo")`
- O usuário seleciona impressora, cópias e intervalo de páginas
- Clique em Imprimir para enviar o documento à impressora escolhida
- Verifique se o documento é impresso com as configurações selecionadas
Como o Diálogo de Impressão Funciona em C#?
O método Printer.ShowPrintDialog() abre o diálogo de impressão nativa do sistema operacional. O usuário vê o conjunto completo de opções de impressão — seleção de impressora, número de cópias, intervalo de páginas, orientação e tamanho do papel — e clica em Imprimir para enviar o trabalho, ou em Cancelar para fechar o diálogo sem imprimir.
Por trás dos bastidores, a abordagem nativa do .NET requer criar uma instância System.Windows.Forms.PrintDialog, conectando-a a um PrintDocument, lidando com o evento PrintPage para desenhar conteúdo na superfície de gráfico de impressão, verificando o DialogResult e, em seguida, chamando PrintDocument.Print(). Essa configuração geralmente executa 15–25 linhas de código. Também não inclui renderização de PDF ou imagem embutida — imprimir um PDF através do diálogo nativo significa primeiro analisar o PDF em páginas desenháveis, o que requer ainda outra biblioteca.
IronPrint lida com todo o pipeline em uma única chamada:
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/show-print-dialog-open-and-print.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
' ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
O método aceita um caminho de arquivo como string ou dados de arquivo bruto como byte[]. IronPrint detecta o formato do documento, renderiza-o através do motor apropriado, e apresenta o diálogo. Quando o usuário confirma, o documento é impresso com as configurações escolhidas. O tutorial de impressão de documentos explora o ciclo completo de impressão em mais detalhes.
Como pré-configuro as configurações do diálogo?
Podemos definir valores padrão antes que o diálogo seja aberto criando um objeto PrintSettings e passando-o como o segundo parâmetro. O diálogo abrirá com esses valores pré-selecionados, e o usuário pode aceitá-los como estão ou alterar qualquer configuração.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/preconfigure-dialog-settings.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
' ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
Isso é útil quando o aplicativo já conhece previamente a impressora ou o formato de papel provável. Por exemplo, um sistema de ponto de venda que sempre imprime recibos em uma impressora térmica específica pode definir PrinterName para esse dispositivo. O usuário ainda tem a opção de alterá-lo no diálogo.
Para descobrir quais impressoras estão disponíveis no sistema, chamamos Printer.GetPrinterNames(), que retorna um List<string> de todas as impressoras instaladas. Da mesma forma, Printer.GetPrinterTrays() retorna as bandejas de papel disponíveis para uma determinada impressora.
A lista completa de propriedades configuráveis inclui PrinterName, PaperSize, PaperOrientation, Dpi, NumberOfCopies, Grayscale, PaperMargins, Flatten (para campos de formulário PDF) e Tray. O guia de configurações de impressão cobre cada propriedade com exemplos de código. Qualquer propriedade não definida em PrintSettings reverte para a configuração padrão da impressora selecionada.
Como mostro o diálogo de forma assíncrona?
O método Printer.ShowPrintDialogAsync() retorna um Task, tornando-o compatível com await. Isso impede que o diálogo bloqueie a thread da interface de usuário, essencial para WPF, MAUI e qualquer aplicativo onde uma interface congelada cria uma má experiência do usuário.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/show-print-dialog-async.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
' ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
ShowPrintDialogAsync() aceita os mesmos parâmetros da versão síncrona: um caminho de arquivo ou array de bytes, além de um objeto PrintSettings opcional. O padrão assíncrono segue o mesmo Padrão Assíncrono Baseado em Tarefas usado em todo o desenvolvimento moderno do .NET.
IronPrint funciona em aplicativos WinForms, WPF, MAUI e console. A aparência do diálogo se adapta à plataforma host e à versão do sistema operacional, para que o usuário sempre veja a janela de impressão nativa que espera.
Quando devo usar um diálogo vs. impressão silenciosa?
A escolha depende de se o usuário precisa de controle sobre o trabalho de impressão.
| Critérios | Imprimir com Diálogo | Impressão silenciosa |
|---|---|---|
| Interação do usuário | Usuário seleciona impressora, cópias, intervalo de páginas | Sem interação — imprime imediatamente |
| Ideal para | Aplicativos de desktop, impressões avulsas, funcionalidades voltadas para o usuário | Tarefas em lote, serviços de segundo plano, aplicativos de quiosque |
| Seleção de impressora | Usuário escolhe no diálogo | Defina programaticamente através de PrintSettings |
| Método IronPrint | Printer.ShowPrintDialog() |
Printer.Print() |
| Variante assíncrona | ShowPrintDialogAsync() |
PrintAsync() |
Use o diálogo quando os usuários precisam verificar ou alterar configurações antes da impressão — exportações de relatórios, impressões de faturas ou qualquer cenário onde a impressora errada cause uma página desperdiçada. Use impressão silenciosa quando o aplicativo controlar todo o trabalho e nenhuma decisão humana for necessária. O tutorial de documento de impressão demonstra ambas as abordagens lado a lado.
Quais formatos de arquivo o diálogo de impressão suporta?
Printer.ShowPrintDialog() suporta os mesmos formatos que impressão silenciosa: PDF, PNG, TIFF, JPEG, GIF, HTML e BMP. Passamos o caminho do arquivo, independentemente do formato, e o IronPrint lida com a renderização e comunicação com o spooler de impressão. Dados de arquivo como byte[] também são aceitos, o que é útil quando o documento é gerado na memória ou obtido de um banco de dados.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-dialog-image-and-byte-array.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
' ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
A página de exemplos de código mostra cenários adicionais específicos para formatos. Para fluxos de trabalho específicos de PDF — gerando um PDF e imprimindo-o imediatamente — o IronPDF se combina naturalmente com o IronPrint. A comparação IronPrint vs. IronPDF explica quando usar cada um.
Próximos passos
Imprimir com diálogo se resume a dois métodos: Printer.ShowPrintDialog() para chamadas síncronas e Printer.ShowPrintDialogAsync() para execução não bloqueante. Pré-configure padrões com PrintSettings e deixe o usuário ajustá-los a partir daí. Ambos os métodos suportam todos os formatos de documento do IronPrint e funcionam em projetos WinForms, WPF, MAUI e de console.
Explore os tutoriais do IronPrint para tutoriais completos, a referência da API da classe Printer para todos os métodos disponíveis ou o guia de configurações de impressão para configuração avançada. O changelog rastreia melhorias recentes e novos recursos.
Inicie uma avaliação gratuita de 30 dias para testar a impressão de diálogo em um projeto em tempo real — não é necessário cartão de crédito. Quando estiver pronto para enviar, veja as opções de licenciamento, a partir de $749.

