Como Especificar o Nome da Impressora em C
A classe PrintSettings do IronPrint expõe uma propriedade PrinterName que direciona os trabalhos de impressão para uma impressora específica. Atribuímos o nome exato da impressora de destino como uma string, passamos o objeto configurado PrintSettings para qualquer método de impressão do IronPrint e o documento é enviado para essa impressora em vez da impressora 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
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
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. Em seguida, passamos esse objeto para Printer.Print.
Entrada
invoice.pdf é uma fatura B2B formatada em formato A4 com itens e totais, impressa em uma impressora específica através de 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 é inicializado com PrinterName = null, ou seja, 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.
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; Essa comparação diferencia maiúsculas de minúsculas. Uma incompatibilidade como "hp laserjet" em vez de "HP LaserJet" resultará em uma falha silenciosa ou em um erro. Em segundo lugar, se o usuário abrir uma caixa de diálogo de impressão por meio de ShowPrintDialog, a seleção da caixa de diálogo substituirá qualquer PrinterName que tenha sido 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 diretamente no código, 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 todas as impressoras que o sistema operacional reconhece, incluindo impressoras locais, de rede e virtuais como "Microsoft Print to PDF". Em seguida, percorremos a lista e selecionamos uma impressora por índice, correspondência de nome ou qualquer lógica personalizada que o aplicativo exija.
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, número de cópias e muito mais. Configuramos tudo em um único objeto.
Entrada
quarterly-report.pdf é um relatório financeiro trimestral em formato A4 com cartões e gráficos de KPIs, impresso com PrinterName combinado com tamanho de papel, DPI e número de cópias em um único 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 encaminha o trabalho para "Impressora Colorida de Escritório", enquanto as propriedades restantes controlam o formato de saída. Dpi em 300 produz texto 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 aplicativos WPF e WinForms onde bloquear a thread principal não é uma opção, usamos Printer.GetPrinterNamesAsync e Printer.PrintAsync. Ambos retornam um Task, mantendo a interface do usuário 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 classes encapsula 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 interface do usuário e, em seguida, atribuímos a primeira impressora disponível a PrinterName. A chamada await Printer.PrintAsync envia a tarefa de forma assíncrona.
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, poderíamos substituir printers[0] por uma lógica que corresponda a uma convenção de nomenclatura, como pesquisar impressoras que contenham "Label" para etiquetas de envio ou "Color" para documentos personalizados. Os métodos assíncronos do IronPrint aceitam o mesmo objeto PrintSettings, portanto, o comportamento PrinterName é idêntico entre os 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?
Abordamos a especificação de um nome de impressora via PrintSettings.PrinterName, desde a atribuição estática até a descoberta dinâmica em tempo de execução com Printer.GetPrinterNames. Pontos principais: os nomes das impressoras devem corresponder exatamente (diferenciando maiúsculas de minúsculas), null utiliza a impressora padrão do sistema operacional e as caixas de diálogo 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 licenciamento a partir de $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#.

