Como Imprimir com um Diálogo em C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPrint fornece Printer.ShowPrintDialog(): um método que abre o diálogo de impressão nativo do SO, captura as seleções de impressora e papel do usuário e despacha o documento para a fila de impressão. Instale um pacote NuGet e escreva uma linha de código.

O diálogo de impressão é a janela padrão do sistema operacional que permite aos usuários escolher uma impressora, definir cópias, escolher um intervalo de páginas e ajustar as opções de papel antes de confirmar a impressão. Aplicações de desktop que precisam dar aos usuários esse controle antes de cada trabalho são o principal caso de uso.

Início Rápido: Imprimir com um Diálogo

  1. Instale IronPrint com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronPrint
  2. Copie e execute este trecho de código.

    using IronPrint;
    
    // Display the print dialog and print the document
    Printer.ShowPrintDialog("document.pdf");
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronPrint em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Como o Diálogo de Impressão Funciona em C#?

O método Printer.ShowPrintDialog() abre o diálogo de impressão nativo 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. Eles clicam em Imprimir para enviar o trabalho, ou Cancelar para dispensar o diálogo sem imprimir.

Nos bastidores, a abordagem nativa do .NET requer a criação de uma instância System.Windows.Forms.PrintDialog, conectando-a a um PrintDocument, lidando com o evento PrintPage para desenhar conteúdo na superfície gráfica da impressão, verificando o DialogResult, e então 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:

Entrada

O relatório trimestral.pdf passado para ShowPrintDialog, um sumário financeiro estilizado do Q3 corporativo com cartões de métrica KPI e tabelas de receita de divisão, representando um documento comercial típico enviado para o diálogo de impressão.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-open-and-print.cs
using IronPrint;

// Open the print dialog and print
Printer.ShowPrintDialog("quarterly-report.pdf");
Imports IronPrint

' Open the print dialog and print
Printer.ShowPrintDialog("quarterly-report.pdf")
$vbLabelText   $csharpLabel

Saída

Diálogo de impressão nativo aberto pelo ShowPrintDialog

Diálogo de impressão nativo aberto pelo ShowPrintDialog para o relatório trimestral.

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.

Podemos definir valores padrão antes de o diálogo abrir 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.

Entrada

O invoice.pdf pré-carregado com configurações de retrato A4 a 300 DPI: uma fatura profissional de cobrança com itens de linha, desconto, imposto e instruções de transferência bancária, mostrando um documento realista onde a aplicação já conhece o tamanho e a orientação de papel requeridos.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-preconfigure-dialog-settings.cs
using IronPrint;

// Pre-configure default dialog settings
var settings = new PrintSettings
{
    PrinterName = "HP LaserJet Pro",
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300,
    NumberOfCopies = 2,
    Grayscale = false
};

// Open the dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings);
Imports IronPrint

' Pre-configure default dialog settings
Dim settings As New PrintSettings With {
    .PrinterName = "HP LaserJet Pro",
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 300,
    .NumberOfCopies = 2,
    .Grayscale = False
}

' Open the dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings)
$vbLabelText   $csharpLabel

Saída

Diálogo de impressão do Windows com configurações pré-configuradas

Diálogo de impressão nativo aberto com configurações de retrato A4 pré-configuradas.

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 o padrão 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. De forma semelhante, Printer.GetPrinterTrays() retorna bandejas de papel disponíveis para uma impressora específica.

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 por padrão vai 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 evita que o diálogo bloqueie o thread da interface de usuário, o que é essencial para WPF, MAUI e qualquer aplicação onde uma interface congelada cria uma experiência de usuário ruim.

Entrada

O report.pdf aguardado de forma assíncrona: um relatório de infraestrutura de TI e segurança de várias seções, representando o tipo de documento de longo formato onde a apresentação do diálogo não bloqueante mantém a interface de usuário responsiva enquanto o arquivo carrega.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-async.cs
using IronPrint;

// Open the print dialog asynchronously
await Printer.ShowPrintDialogAsync("report.pdf");
Imports IronPrint

' Open the print dialog asynchronously
Await Printer.ShowPrintDialogAsync("report.pdf")
$vbLabelText   $csharpLabel

Saída

Diálogo de impressão assíncrono aberto via ShowPrintDialogAsync

Diálogo de impressão nativo aberto de forma assíncrona via ShowPrintDialogAsync, com o console confirmando a execução não bloqueante.

ShowPrintDialogAsync() aceita os mesmos parâmetros da versão síncrona: um caminho de arquivo ou matriz de bytes, além de um objeto opcional PrintSettings. 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?

Use o diálogo quando os usuários precisarem escolher configurações de impressora antes de cada trabalho; use impressão silenciosa para fluxos de trabalho automatizados onde nenhuma decisão humana é necessária.

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; prints immediately
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 Definido programaticamente via PrintSettings
Método IronPrint Printer.ShowPrintDialog() Printer.Print()
Variante assíncrona ShowPrintDialogAsync() PrintAsync()

Exportações de relatórios, impressões de faturas e qualquer trabalho onde a impressora equivocada desperdice materiais são bons candidatos para o diálogo. Impressão silenciosa se ajusta a fluxos de trabalho automatizados onde nenhuma decisão humana é necessária entre documentos.

Quais formatos de arquivo o diálogo de impressão suporta?

Printer.ShowPrintDialog() suporta os mesmos formatos da 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 a comunicação com o spooler de impressão. Os dados do arquivo como byte[] também são aceitos, o que é útil quando o documento é gerado na memória ou recuperado de um banco de dados.

Entrada

relatório-mensal.pdf lido em um byte[], representando um documento recuperado de um banco de dados ou gerado na memória antes de ser enviado para o diálogo.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-print-dialog-image-and-byte-array.cs
using IronPrint;

// Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png");

// Print from a byte array
byte[] reportData = File.ReadAllBytes("monthly-report.pdf");
Printer.ShowPrintDialog(reportData);
Imports IronPrint

' Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png")

' Print from a byte array
Dim reportData As Byte() = File.ReadAllBytes("monthly-report.pdf")
Printer.ShowPrintDialog(reportData)
$vbLabelText   $csharpLabel

Saída

O diálogo abre conforme visto nos exemplos acima. A detecção de formato é automática: seja passando um caminho de arquivo ou um byte[], o IronPrint renderiza o documento e apresenta o mesmo diálogo nativo.

A página de exemplos de código mostra cenários adicionais específicos para formatos. Para fluxos de trabalho específicos de PDF (gerar um PDF e imprimi-lo imediatamente), IronPDF combina naturalmente com o IronPrint.

Próximos passos

Imprimir com um 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 ajustar 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.

Comece um teste grátis de 30 dias para testar impressão com diálogo em um projeto ao vivo, sem necessidade de cartão de crédito. Quando estiver pronto para enviar, veja as opções de licenciamento começando em $999.

Perguntas frequentes

Qual é a principal função do IronPrint?

O IronPrint permite que os desenvolvedores exibam e configurem um diálogo de impressão em aplicações C#, facilitando a impressão de PDFs e imagens com configurações pré-configuradas.

Como posso exibir um diálogo de impressão usando o IronPrint?

Você pode exibir um diálogo de impressão em sua aplicação C# usando o método ShowPrintDialog() do IronPrint, que oferece uma maneira interativa de configurar configurações de impressão.

O IronPrint suporta impressão assíncrona?

Sim, o IronPrint suporta impressão assíncrona, permitindo que sua aplicação permaneça responsiva enquanto lida com trabalhos de impressão.

Posso pré-configurar configurações de impressão com o IronPrint?

Sim, o IronPrint permite pré-configurar configurações de impressão como tamanho do papel, orientação e seleção de impressora antes de exibir o diálogo de impressão.

É possível imprimir imagens usando o IronPrint?

O IronPrint suporta a impressão de PDFs e imagens, oferecendo flexibilidade para vários tipos de documentos em sua aplicação C#.

Como o IronPrint melhora a experiência do diálogo de impressão em C#?

O IronPrint melhora a experiência do diálogo de impressão ao permitir que os desenvolvedores personalizem e configurem facilmente as configurações de impressão, suportando operações síncronas e assíncronas.

Quais tipos de documentos posso imprimir com o IronPrint?

Com o IronPrint, você pode imprimir uma variedade de documentos, incluindo PDFs e imagens, diretamente de sua aplicação C#.

O IronPrint pode ser integrado em aplicações C# existentes?

Sim, o IronPrint foi projetado para ser integrado facilmente em aplicações C# existentes, fornecendo uma maneira simples de adicionar funcionalidade de diálogo de impressão.

Quais as vantagens que o IronPrint oferece para desenvolvedores C#?

O IronPrint oferece vantagens como fácil integração, configurações de impressão personalizáveis, suporte para impressão assíncrona e capacidade de imprimir PDFs e imagens.

Como o IronPrint lida com diferentes configurações de impressora?

O IronPrint permite que você configure diferentes configurações de impressora, garantindo compatibilidade com várias impressoras e personalização para atender a necessidades específicas de impressão.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Baixar 44,051 | Versão: 2026.7 recém-lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPrint
executar um exemplo Veja seu documento chegar à impressora.