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,439Versã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.
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.

OR
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.