IRONSOFTWAREHOME

Como recuperar nomes de impressoras em C#

Curtis Chau
Curtis Chau
Updated: 29 de junho de 2026

Saber quais impressoras estão disponíveis em um sistema é um pré-requisito comum para qualquer aplicação .NET que envia documentos para impressão. Se o objetivo é permitir que os usuários escolham uma impressora em um menu suspenso ou direcionar trabalhos de impressão para um dispositivo específico automaticamente, obter os nomes das impressoras programaticamente é o primeiro passo.

O IronPrint expõe um único método estático — Printer.GetPrinterNames() — que retorna cada impressora instalada na máquina Windows atual como um List<string>. Cobrimos a instalação, recuperação síncrona e assíncrona, e como inserir um nome de impressora selecionado em um trabalho de impressão abaixo.

Início Rápido: Recuperar Nomes de Impressoras
  1. Install IronPrint via NuGet: Install-Package IronPrint
  2. Adicione using IronPrint; ao arquivo
  3. Chame Printer.GetPrinterNames() para obter um List<string> de nomes de impressoras
  4. Itere sobre a lista e exiba ou armazene cada nome
  5. Passe um nome selecionado para PrintSettings.PrinterName ao imprimir
  1. 1Install IronPrint with NuGet Package Manager

    PM > Install-Package IronPrint

  2. 2Copie e execute este trecho de código.

    using IronPrint;
    
    // Retrieve every printer installed on this machine
    List<string> printers = Printer.GetPrinterNames();
    
    foreach (var name in printers)
    {
        Console.WriteLine(name);
    }
    C#
  3. 3Implante para testar em seu ambiente de produção.

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

Como posso listar todos os nomes de impressoras instaladas?

Printer.GetPrinterNames() consulta o sistema operacional e retorna cada impressora registrada como um List<string>. Chamamos este método uma vez e iteramos sobre o resultado:

using IronPrint;
using System;
using System.Collections.Generic;

// List every installed printer
List<string> printerNames = Printer.GetPrinterNames();

Console.WriteLine($"Found {printerNames.Count} printer(s):\n");

// Print each printer name
foreach (string name in printerNames)
{
    Console.WriteLine($"  • {name}");
}

Saída do console

Encontrada(s) 3 impressora(s):

  • Microsoft Print to PDF
  • HP LaserJet Pro MFP M428
  • OneNote (Área de Trabalho)
Text

A lista retornada inclui impressoras locais, impressoras de rede e drivers de impressão virtuais. Cada string corresponde exatamente ao nome exibido no painel do Windows Configurações > Impressoras e scanners, então pode ser usado diretamente na configuração de impressão.

Se nenhuma impressora estiver instalada, o método retorna uma lista vazia em vez de lançar uma exceção. Um rápido check printerNames.Count é tudo o que é necessário antes de apresentar opções a um usuário.

Como faço para recuperar nomes de impressoras assincronamente?

Para aplicações onde bloquear o thread da UI não é aceitável — WPF, MAUI, ou aplicativos web ASP.NET — IronPrint fornece Printer.GetPrinterNamesAsync(). O método retorna um Task<List<string>> e funciona de forma idêntica ao seu equivalente síncrono:

using IronPrint;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

// Retrieve printer names asynchronously
List<string> printerNames = await Printer.GetPrinterNamesAsync();

// Print each printer name
foreach (string name in printerNames)
{
    Console.WriteLine(name);
}

Nós await a chamada como qualquer outra API assíncrona. O resultado é o mesmo List<string> retornado por GetPrinterNames(), então não é necessário parsing adicional ou conversão. Este padrão assíncrono integra-se naturalmente com ações de controlador async Task e manipuladores de eventos async void.

Como faço para imprimir em uma impressora específica por nome?

Uma vez que temos o nome da impressora, nós o atribuímos a PrintSettings.PrinterName e passamos o objeto de configurações para Printer.Print(). Isso envia o documento diretamente para a impressora escolhida sem exibir uma caixa de diálogo:

using IronPrint;
using System.Collections.Generic;

// Retrieve available printers
List<string> printers = Printer.GetPrinterNames();

// Select a printer matching "LaserJet", or fall back to the first available
string targetPrinter = printers.Find(p => p.Contains("LaserJet"))
                       ?? printers[0];

// Configure print settings
PrintSettings settings = new PrintSettings
{
    PrinterName = targetPrinter,
    PaperSize = PaperSize.A4,
    NumberOfCopies = 1
};

// Print the document
Printer.Print("invoice.pdf", settings);

PrintSettings suporta propriedades adicionais como Dpi, PaperOrientation, Grayscale, e PaperMargins. Veja a lista completa na referência API PrintSettings e o guia de como configurar impressões.

Também recuperamos bandejas de papel disponíveis para uma impressora específica usando Printer.GetPrinterTrays(printerName), o que é útil quando um trabalho de impressão precisa puxar papel de uma bandeja específica.

Quais são os meus próximos passos?

Cobrimos quatro operações: instalar o IronPrint, listar todos os nomes de impressoras com GetPrinterNames(), executar a mesma consulta de forma assíncrona com GetPrinterNamesAsync(), e encaminhar um documento para uma impressora específica através de PrintSettings.PrinterName.

Para mais leitura e exemplos mais profundos, explore estes recursos:

Obtenha uma licença de teste gratuita para testar cada recurso em um ambiente ao vivo, ou veja as opções de licenciamento quando estiver pronto para implantar.

Perguntas frequentes

Qual é a maneira mais fácil de recuperar nomes de impressoras em C#?

A maneira mais fácil de recuperar nomes de impressoras em C# é usando o IronPrint .NET, que permite obter uma lista de impressoras instaladas com uma única chamada de método.

Posso recuperar nomes de impressoras de forma assíncrona usando o IronPrint?

Sim, o IronPrint .NET suporta operações assíncronas, permitindo que você recupere nomes de impressoras sem bloquear o thread principal.

É possível imprimir para uma impressora específica por nome usando o IronPrint?

Absolutamente, o IronPrint .NET permite que você especifique o nome da impressora, para que você possa imprimir documentos diretamente para qualquer impressora instalada de sua escolha.

O IronPrint suporta a recuperação de nomes de impressoras em todas as plataformas .NET?

O IronPrint .NET foi projetado para funcionar com várias plataformas .NET, permitindo que você recupere nomes de impressoras de forma contínua em diferentes ambientes.

Como o IronPrint lida com nomes de impressoras em um ambiente de rede?

O IronPrint .NET pode recuperar nomes de impressoras de impressoras locais e de rede, tornando-o versátil para uso em diferentes configurações de rede.

What additional properties can I configure with PrintSettings?

With `PrintSettings`, you can configure properties like `Dpi`, `PaperSize`, `PaperOrientation`, `Grayscale`, and `PaperMargins`.

How do I iterate over printer names in C# using IronPrint?

You can use a foreach loop to iterate over the list returned by `Printer.GetPrinterNames()`, allowing you to display or store each printer name.

Can IronPrint work with network and virtual printers?

Yes, the list returned by `Printer.GetPrinterNames()` includes local printers, network printers, and virtual print drivers.

Where can I find more information on printing settings in IronPrint?

You can refer to the [PrintSettings How-To Guide](https://ironsoftware.com/csharp/print/how-to/print-settings/) and the [API Reference](https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html) for detailed information.

Does IronPrint provide support for different paper trays?

Yes, you can use `Printer.GetPrinterTrays(printerName)` to retrieve available paper trays for a given printer.

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 bem estruturados e visualmente atraentes.

...
Leia mais

Pronto para começar?

Nuget Downloads 46,090Versão:2026.9recém-lançado

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.
Biblioteca NuGet C# para PDF
Instalar com NuGet

Versão: 2026.9

PM > Install-Package IronPrint
nuget.org/packages/IronPrint/
  1. No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
  2. Selecione Procurar e pesquise "IronPrint".
  3. Selecione o pacote e instale.
DLL de PDF em C#
Baixar DLL

Versão: 2026.9

  1. Baixe e descompacte o IronPrint em um local como ~/Libs dentro do diretório da sua solução.
  2. No Solution Explorer do Visual Studio, clique com o botão direito do mouse em Referências. Selecione Procurar e digite "IronPrint.dll".

Licenças a partir de US$ 749

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.