Como Especificar o Nome da Impressora em C
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. Isso é útil ao imprimir documento automaticamente em fluxos de trabalho sem interação do usuário.
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
- Instalar o IronPrint via NuGet:
Install-Package IronPrint - Adicionar
using IronPrint;ao arquivo - Criar um objeto
PrintSettings - Definir
PrinterNamepara o nome exato da impressora de destino - Passar as configurações para
Printer.Print()ouPrinter.PrintAsync()
-
Instale IronPrint com o Gerenciador de Pacotes NuGet
PM > Install-Package IronPrint -
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" }); -
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#
- Crie um objeto `PrintSettings`
- Defina `PrinterName` para o nome da impressora alvo
- Passe as configurações para `Printer.Print()`
- Execute o projeto para imprimir na impressora especificada
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!
' ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
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!
' ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
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!
' ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
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!
' ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
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:
- Veja o exemplo de código de obtenção de nomes de impressoras para um snippet de descoberta independente
- Explore o guia completo de configuração de configurações de impressão para todas as propriedades disponíveis
- Revise a referência da API da classe Printer para métodos como
PrintToPrinter,ShowPrintDialog, e gestão de bandejas. - Procure na referência completa da API por
PrintSettings,PaperSize, eMargins
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.

