Como Imprimir com um Diálogo em C

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

O IronPrint fornece Printer.ShowPrintDialog(): um método que abre a caixa de diálogo de impressão nativa do sistema operacional, captura as seleções de impressora e papel do usuário e envia 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 a caixa de 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. 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, a conexão dela a um PrintDocument , o tratamento do evento PrintPage para desenhar o conteúdo na superfície gráfica de impressão, a verificação do DialogResult e, em seguida, a chamada de 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 arquivo quarterly-report.pdf, enviado para ShowPrintDialog, é um resumo financeiro corporativo formatado do terceiro trimestre, com cartões de métricas de KPIs e tabelas de receita por divisão, representando um documento comercial típico enviado para a caixa de 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 um string ou dados brutos de arquivo como um 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 da abertura da caixa de diálogo criando um objeto PrintSettings e passando-o como 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 PrinterName como padrão para esse dispositivo. O usuário ainda terá a opção de alterá-lo na caixa de 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 assume por padrão 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 que a versão síncrona: um caminho de arquivo ou matriz de bytes, Plus 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 Defina 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 que a impressão silenciosa: PDF, PNG, TIFF, JPEG, GIF, HTML e BMP. Passamos o caminho do arquivo independentemente do formato, e o IronPrint cuida da renderização e da comunicação com a fila de impressão. Os dados do arquivo no formato byte[] também são aceitos, o que é útil quando o documento é gerado na memória ou recuperado de um banco de dados.

Entrada

monthly-report.pdf lido em um byte[], representando um documento recuperado de um banco de dados ou gerado na memória antes de ser enviado para a caixa de 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: quer passemos um caminho de arquivo ou um byte[], o IronPrint renderiza o documento e apresenta a mesma caixa de diálogo nativa.

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

A impressão com uma caixa de 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 os valores padrão 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 envio, veja as opções de licenciamento a partir de $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 41,154 | Versão: 2026.5 just released
Still Scrolling Icon

Ainda está rolando a tela?

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