Como Especificar o Nome da Impressora em C#

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

A classe PrintSettings do IronPrint expõe uma propriedade PrinterName que direciona trabalhos de impressão para uma impressora específica. Atribuímos o nome exato da impressora de destino como uma string, passamos o objeto PrintSettings configurado para qualquer um dos métodos de impressão do IronPrint, e o documento vai para essa impressora em vez do padrão do sistema.

Este guia detalha como definir um nome de impressora, descobrir impressoras disponíveis em tempo de execução e combinar a seleção de impressoras com outras configurações de impressão.

Início Rápido: Especificar o Nome da Impressora

  1. Instalar o IronPrint via NuGet: Install-Package IronPrint
  2. Adicionar using IronPrint; ao arquivo
  3. Criar um objeto PrintSettings
  4. Definir PrinterName para o nome exato da impressora de destino
  5. Passar as configurações para Printer.Print() ou Printer.PrintAsync()
  1. Instale IronPrint com o Gerenciador de Pacotes NuGet

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

    using IronPrint;
    
    // Print a document to a specific printer
    Printer.Print("report.pdf", new PrintSettings
    {
        PrinterName = "HP LaserJet Pro M404"
    });
  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 Especificar um Nome de Impressora em C#?

Especificamos a impressora de destino atribuindo seu nome à propriedade PrinterName de um objeto PrintSettings. Em seguida, passamos esse objeto para Printer.Print.

:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/set-printer-name.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
$vbLabelText   $csharpLabel

Primeiro instanciamos PrintSettings, que inicializa com PrinterName = null — significando a impressora padrão do sistema operacional. Em seguida, substituímos PrinterName pelo nome exato da impressora de destino. Quando chamamos Printer.Print, o IronPrint envia o trabalho diretamente para a fila dessa impressora.

Dois detalhes críticos a serem observados. Primeiro, o nome da impressora deve corresponder exatamente ao que o sistema operacional relata — essa comparação diferencia maiúsculas de minúsculas. Uma discrepância como "hp laserjet" em vez de "HP LaserJet" resultará em falha silenciosa ou erro. Em segundo lugar, se o usuário abrir uma caixa de diálogo de impressão via ShowPrintDialog, a seleção na caixa de diálogo substituirá qualquer PrinterName configurado no código. Isso é intencional — o diálogo dá aos usuários o controle final.

Como Descobrir Impressoras Disponíveis?

Em vez de codificar nomes de impressoras diretamente, podemos consultar o sistema em tempo de execução usando Printer.GetPrinterNames(). Este método retorna um List<string> contendo todas as impressoras instaladas na máquina.

:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/discover-printers.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
$vbLabelText   $csharpLabel

Chamamos GetPrinterNames() para recuperar todas as impressoras conhecidas pelo sistema operacional — incluindo impressoras locais, de rede e virtuais como "Microsoft Print to PDF". Em seguida, iteramos pela lista e selecionamos uma impressora por índice, correspondência de nome ou qualquer lógica personalizada que a aplicação exija.

Este padrão de descobrir-e-então-imprimir é essencial para aplicativos implantados em diferentes máquinas. Codificar um nome de impressora funciona para cenários de máquina única, mas aplicativos de produção devem consultar as impressoras disponíveis e permitir que o usuário escolha ou selecione uma programaticamente com base em convenções de nomenclatura. Para um exemplo dedicado de código, veja o exemplo de obtenção de nomes de impressoras.

Como Combinarei o Nome da Impressora com Outras Configurações?

A classe PrintSettings expõe PrinterName junto com propriedades para tamanho de papel, orientação, DPI, margens, quantidade de cópias e achatamento. Configuramos tudo em um único objeto.

:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/combined-settings.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
$vbLabelText   $csharpLabel

Usamos a sintaxe inicializadora de objetos para melhor legibilidade. PrinterName direciona o trabalho para "Office Color Printer" enquanto as restantes propriedades controlam o formato de saída. Dpi a 300 produz texto e gráficos nítidos. PaperMargins aceita quatro valores em milímetros através do construtor Margins — superior, direito, inferior, esquerdo.

IronPrint valida a configuração como um todo e envia as configurações combinadas para o driver da impressora em um único trabalho. Para opções adicionais como seleção de bandeja e modo em escala de cinza, veja o guia completo de configurações de impressão.

Como Selecionar uma Impressora e Imprimir Assincronamente?

Para aplicativos onde bloquear o thread principal não é uma opção — como apps WPF ou WinForms — usamos Printer.GetPrinterNamesAsync() e Printer.PrintAsync(). Ambos retornam um Task, mantendo a UI responsiva.

:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/async-printer-select.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
$vbLabelText   $csharpLabel

Este exemplo baseado em classe envolve a lógica de descoberta e impressão em um serviço reutilizável. Chamamos GetPrinterNamesAsync() para recuperar a lista de impressoras sem congelar a UI, depois atribuímos a primeira impressora disponível a PrinterName. A chamada await Printer.PrintAsync envia o trabalho de forma assíncrona.

Em produção, podemos substituir printers[0] por uma lógica que corresponda a uma convenção de nomenclatura — como buscar impressoras contendo "Label" para etiquetas de envio ou "Color" para documentos de marca. Os métodos assíncronos do IronPrint aceitam todos o mesmo objeto PrintSettings, portanto, o comportamento de PrinterName é idêntico entre os caminhos síncronos e assíncronos.

Quais são os meus próximos passos?

Cobrimos como especificar um nome de impressora em C# usando a propriedade PrintSettings.PrinterName do IronPrint, desde a atribuição estática até a descoberta dinâmica em tempo de execução com Printer.GetPrinterNames(). Os pontos principais: os nomes das impressoras devem corresponder exatamente (diferenciação de maiúsculas e minúsculas), null tem como padrão a impressora padrão do SO, e caixas de diálogo de impressão substituem a seleção programática.

Para continuar explorando as capacidades do IronPrint:

Inicie uma avaliação gratuita de 30 dias para testar a seleção de impressora em seus próprios projetos, ou veja opções de licenciamento para implantação em produçã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 Downloads 38,093 | Versão: 2026.3 acaba de ser 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.