Como Especificar o Nome da Impressora em C
A classe PrintSettings da 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 método de impressão IronPrint, e o documento vai para essa impressora em vez da 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
-
Instale IronPrint com o Gerenciador de Pacotes NuGet
-
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
Fluxo de trabalho mínimo (5 etapas)
- Instale a biblioteca de impressão IronPrint C#
- Crie um objeto
PrintSettings - Defina
PrinterNamepara o nome da impressora alvo - Passar 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 em um objeto PrintSettings. Passamos então esse objeto para Printer.Print.
Entrada
invoice.pdf é uma fatura B2B estilizada A4 com itens de linha e totais, impressa em uma impressora nomeada específica via PrintSettings.PrinterName.
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-set-printer-name.cs
using IronPrint;
// Configure print settings with a target printer
PrintSettings settings = new PrintSettings();
settings.PrinterName = "Microsoft Print to PDF";
// Print to the specified printer
Printer.Print("invoice.pdf", settings);
Imports IronPrint
' Configure print settings with a target printer
Dim settings As New PrintSettings()
settings.PrinterName = "Microsoft Print to PDF"
' Print to the specified printer
Printer.Print("invoice.pdf", settings)
Primeiro instanciamos PrintSettings, que inicializa com PrinterName = null, significando a impressora padrão do SO. Em seguida, sobrescrevemos PrinterName com o nome exato em string da impressora de destino. Quando chamamos Printer.Print, IronPrint envia o trabalho diretamente para a fila dessa impressora.
Saída
A fatura é enviada diretamente para a impressora nomeada. O trabalho aparece na fila da impressora como visto no exemplo de impressão silenciosa.
Saída da fatura impressa em "Microsoft Print to PDF" usando PrinterName.
Dois detalhes para ter em mente. Primeiro, o nome da impressora deve corresponder exatamente ao que o sistema operacional relata; esta comparação diferencia maiúsculas de minúsculas. Uma incompatibilidade como "hp laserjet" em vez de "HP LaserJet" falhará silenciosamente ou lançará um erro. Em segundo lugar, se o usuário abrir um diálogo de impressão via ShowPrintDialog, a seleção do diálogo substituirá qualquer PrinterName definido no código, dando aos usuários o controle final.
Se o nome da impressora não for conhecido antecipadamente, podemos consultar todas as impressoras instaladas em tempo de execução em vez de codificar o valor diretamente.
Como Descobrir Impressoras Disponíveis?
Em vez de codificar os nomes das impressoras, 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.
Entrada
report.pdf é um relatório de negócios A4 com uma seção de resumo e tabela de dados, impresso na primeira impressora descoberta dinamicamente.
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-discover-printers.cs
using IronPrint;
// List every installed printer
List<string> printers = Printer.GetPrinterNames();
// Print each printer name
foreach (string name in printers)
{
Console.WriteLine(name);
}
// Print to the first available printer
if (printers.Count > 0)
{
Printer.Print("report.pdf", new PrintSettings
{
PrinterName = printers[0]
});
}
Imports IronPrint
' List every installed printer
Dim printers As List(Of String) = Printer.GetPrinterNames()
' Print each printer name
For Each name As String In printers
Console.WriteLine(name)
Next
' Print to the first available printer
If printers.Count > 0 Then
Printer.Print("report.pdf", New PrintSettings With {
.PrinterName = printers(0)
})
End If
Chamamos GetPrinterNames para recuperar cada impressora que o sistema operacional conhece, incluindo impressoras locais, de rede, e virtuais como "Microsoft Print to PDF". Em seguida, iteramos pela lista e selecionamos uma impressora por índice, combinação de nomes, ou qualquer lógica personalizada que o aplicativo requer.
Saída
O relatório é enviado para a primeira impressora disponível. O trabalho aparece na fila da impressora conforme visto acima.
Saída de relatório impressa na primeira impressora disponível via GetPrinterNames.
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.
A seleção de impressora também pode ser combinada com tamanho de papel, DPI, contagem de cópias e margens em um único objeto de configuração.
Como Combinarei o Nome da Impressora com Outras Configurações?
A classe PrintSettings expõe PrinterName juntamente com propriedades para tamanho do papel, orientação, DPI, margens, contagem de cópias, e mais. Configuramos tudo em um único objeto.
Entrada
quarterly-report.pdf é um relatório financeiro trimestral A4 com cartões de KPI e gráficos, impresso com PrinterName combinado com tamanho do papel, DPI e contagem de cópias em um objeto PrintSettings.
:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-combined-settings.cs
using IronPrint;
// Configure full print settings with a named printer
PrintSettings settings = new PrintSettings
{
PrinterName = "Office Color Printer",
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 300,
NumberOfCopies = 2,
PaperMargins = new Margins(15, 15, 15, 15),
Grayscale = false
};
// Print the quarterly report
Printer.Print("quarterly-report.pdf", settings);
Imports IronPrint
' Configure full print settings with a named printer
Dim settings As New PrintSettings With {
.PrinterName = "Office Color Printer",
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 300,
.NumberOfCopies = 2,
.PaperMargins = New Margins(15, 15, 15, 15),
.Grayscale = False
}
' Print the quarterly report
Printer.Print("quarterly-report.pdf", settings)
Usamos a sintaxe inicializadora de objetos para melhor legibilidade. PrinterName direciona o trabalho para a "Impressora Colorida do Escritório" enquanto as propriedades restantes controlam o formato de saída. Dpi a 300 produz textos e gráficos nítidos. PaperMargins aceita valores em milímetros através do construtor Margins. Para a lista completa de propriedades disponíveis, veja o guia de configurações de impressão.
Saída
O relatório trimestral é impresso com a impressora nomeada, A4 retrato, 300 DPI, 2 cópias e margens de 15 mm combinadas em um único trabalho. O trabalho aparece na fila da impressora conforme visto acima.
Saída de relatório trimestral com PrinterName, A4, 300 DPI, 2 cópias e margens de 15 mm.
IronPrint valida a configuração como um todo e envia as configurações combinadas para o driver da impressora em um único trabalho.
Aplicações que não podem bloquear o thread principal durante a descoberta ou impressão de impressoras podem usar os equivalentes assíncronos de ambas as operações.
Como Selecionar uma Impressora e Imprimir Assincronamente?
Para aplicações WPF e WinForms onde bloquear o thread principal não é uma opção, 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/specify-printer-name-async-printer-select.cs
using IronPrint;
using System.Threading.Tasks;
public class PrintService
{
public async Task PrintToFirstAvailableAsync(string filePath)
{
// Discover available printers asynchronously
List<string> printers = await Printer.GetPrinterNamesAsync();
// Exit if no printers are installed
if (printers.Count == 0)
{
Console.WriteLine("No printers found.");
return;
}
// Configure settings for the first available printer
PrintSettings settings = new PrintSettings
{
PrinterName = printers[0],
Dpi = 300
};
// Print asynchronously
await Printer.PrintAsync(filePath, settings);
}
}
Imports IronPrint
Imports System.Threading.Tasks
Public Class PrintService
Public Async Function PrintToFirstAvailableAsync(filePath As String) As Task
' Discover available printers asynchronously
Dim printers As List(Of String) = Await Printer.GetPrinterNamesAsync()
' Exit if no printers are installed
If printers.Count = 0 Then
Console.WriteLine("No printers found.")
Return
End If
' Configure settings for the first available printer
Dim settings As New PrintSettings With {
.PrinterName = printers(0),
.Dpi = 300
}
' Print asynchronously
Await Printer.PrintAsync(filePath, settings)
End Function
End Class
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 assíncronamente.
Saída
A fatura é impressa de forma assíncrona na primeira impressora descoberta. O trabalho aparece na fila da impressora conforme visto acima.
Saída da fatura impressa de forma assíncrona na primeira impressora disponível.
Em produção, podemos substituir printers[0] por lógica que corresponda a uma convenção de nomenclatura, como procurar impressoras contendo "Label" para etiquetas de envio ou "Color" para documentos de marca. Os métodos assíncronos do IronPrint todos aceitam o mesmo objeto PrintSettings, então o comportamento de PrinterName é idêntico entre caminhos síncronos e assíncronos.
Com atribuição estática, descoberta em tempo de execução, configurações combinadas e fluxos de trabalho assíncronos todos cobertos, recursos relacionados valem a pena serem marcados.
Quais são os meus próximos passos?
Cobrimos especificar um nome de impressora via PrintSettings.PrinterName, de atribuição estática a descoberta dinâmica em tempo de execução com Printer.GetPrinterNames. Os pontos principais: os nomes das impressoras devem corresponder exatamente (diferenciam maiúsculas de minúsculas), null por padrão para a impressora padrão do SO, e diálogos de impressão substituem a seleção programática.
O exemplo de obtenção de nomes de impressoras fornece um snippet de descoberta autônomo, enquanto o guia de configurações de impressão cobre cada propriedade configurável em detalhe. A referência da API da classe Printer documenta todos os métodos de impressão estáticos, e a referência da API PrintSettings lista todos os campos e padrões. Para um tutorial de ponta a ponta, o tutorial de impressão de documento reúne tudo.
Inicie um teste gratuito de 30 dias para testar a seleção de impressora em um projeto ao vivo. Quando estiver pronto, veja as opções de licença começando em $999.
https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.Printer.html https://ironsoftware.com/csharp/print/how-to/print-settings/https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.Printer.html
Perguntas frequentes
Como posso especificar um nome de impressora em C# usando o IronPrint?
Com o IronPrint, você pode especificar um nome de impressora em C# definindo a propriedade PrinterName. Isso permite que você direcione uma impressora específica para suas tarefas de impressão.
O que é IronPrint?
IronPrint é uma biblioteca da Iron Software que permite aos desenvolvedores gerenciar tarefas de impressão em aplicações C#, fornecendo funcionalidade para especificar nomes de impressora e outras opções de impressão.
Como descubro as impressoras disponíveis em C#?
Usando o IronPrint, você pode facilmente descobrir as impressoras disponíveis em sua rede acessando a lista de impressoras e selecionando o PrinterName desejado para seu trabalho de impressão.
Posso definir a propriedade PrinterName dinamicamente?
Sim, com o IronPrint você pode definir dinamicamente a propriedade PrinterName em seu código C# para selecionar a impressora desejada em tempo de execução.
É possível imprimir para uma impressora de rede usando o IronPrint?
Sim, o IronPrint permite que você especifique e imprima para impressoras de rede definindo a propriedade PrinterName apropriada em sua aplicação C#.

