Como imprimir com uma impressora de rede em C#
A impressão programática em impressoras de rede é uma tarefa comum em diversas aplicações de software. Seja você construindo um aplicativo de desktop, móvel ou um serviço web, a capacidade de enviar documentos diretamente para uma impressora de rede pode melhorar muito a usabilidade e eficiência do seu software. Neste artigo, exploraremos como imprimir em uma impressora de rede usando C# e IronPrint da Iron Software.
How to Print with Network Printer in C
- Crie um novo projeto para imprimir documentos usando IronPrint.
- Instale IronPrint em um novo projeto.
- Liste as impressoras de rede disponíveis para impressão de documentos.
- Imprima documentos PDF usando IronPrint.
- Imprima documentos PDF usando IronPrint com Diálogo.
- Impressão Avançada com configurações de impressão.
Configurando o Ambiente
Antes de mergulharmos na parte de codificação, vamos garantir que nosso ambiente esteja configurado corretamente. Para imprimir em uma impressora de rede em C#, você precisa ter o seguinte:
- Certifique-se de que uma impressora de rede está acessível a partir da máquina onde sua aplicação C# será executada.
- O endereço de rede da impressora (endereço IP ou nome da impressora de rede).
- Driver/drivers de impressora necessários instalados na máquina.
- Privilégios administrativos para instalar impressoras ou drivers, se necessário.
IronPrint
Antes de mergulharmos nos detalhes da implementação, vamos nos familiarizar com como começar a usar o IronPrint:
- Instalação: IronPrint pode ser facilmente instalado via NuGet Package Manager. Basta visitar a página do NuGet e seguir as instruções de instalação.
- Documentação: Consulte a documentação oficial para um guia de início rápido e referência completa da API.
Compatibilidade e Suporte: IronPrint oferece ampla compatibilidade e suporte em diversos ambientes e tipos de projetos:
- Suporte a Versões do .NET: IronPrint suporta C#, VB.NET e F#, incluindo .NET 8,7,6,5 e Core 3.1+.
- Sistemas Operacionais e Ambientes: IronPrint é compatível com Windows (7+), macOS (10+), iOS (11+) e Android API 21+ (v5 "Lollipop").
- Tipos de Projetos: Seja você desenvolvendo aplicativos móveis (Xamarin, MAUI, Avalonia), de desktop (WPF, MAUI, Windows Avalonia) ou console, o IronPrint está coberto.
Agora, vamos ver como imprimir com o IronPrint com o seguinte exemplo.
using IronPrint;
namespace IronPrintDemo
{
class Program
{
static void Main(string[] args)
{
// Configure printer setting
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 220;
printSettings.NumberOfCopies = 10;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the document
Printer.Print("awesomeIronPrint.pdf", printSettings);
}
}
}
using IronPrint;
namespace IronPrintDemo
{
class Program
{
static void Main(string[] args)
{
// Configure printer setting
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 220;
printSettings.NumberOfCopies = 10;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the document
Printer.Print("awesomeIronPrint.pdf", printSettings);
}
}
}
Imports IronPrint
Namespace IronPrintDemo
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Configure printer setting
Dim printSettings As New PrintSettings()
printSettings.Dpi = 220
printSettings.NumberOfCopies = 10
printSettings.PaperOrientation = PaperOrientation.Portrait
' Print the document
Printer.Print("awesomeIronPrint.pdf", printSettings)
End Sub
End Class
End Namespace
Sistema de Impressão
O namespace System.Printing em C# contém classes e interfaces que permitem aos desenvolvedores interagir programaticamente com impressoras, filas de impressão, servidores de impressão e trabalhos de impressão. Algumas classes e interfaces chave dentro deste namespace incluem:
PrintQueue: Representa uma impressora ou dispositivo de impressão conectado ao sistema.PrintServer: Representa um servidor de impressão na rede.PrintSystemJobInfo: Fornece informações sobre um trabalho de impressão, como seu status e propriedades.PrintTicket: Representa as configurações para um trabalho de impressão, incluindo tamanho do papel, orientação e qualidade de impressão.
Iniciando com System.Printing: Antes de mergulharmos no código, vamos garantir que temos um entendimento básico de como a impressão funciona com System.Printing:
- Seleção de
PrintQueue: Você precisa identificar o objetoPrintQueueque representa a impressora que deseja usar para imprimir. - Configuração de
PrintTicket: Opcionalmente, você pode configurar o objetoPrintTicketpara especificar configurações de impressão, como tamanho do papel, orientação e número de cópias. - Impressão de Documentos: Finalmente, você envia o documento a ser impresso para a
PrintQueueselecionada.
Implementando a Impressão de Documentos com System.Printing: Agora, vamos passar pelo processo de impressão de um documento usando System.Printing com o seguinte exemplo:
Aqui está o código-fonte:
using System;
using System.IO;
using System.Printing;
class Program
{
static void Main(string[] args)
{
// Specify the path to the document to be printed on the local printer
string documentPath = "path/to/your/document.pdf";
// Instantiate a Printer Server object representing the local print server
using (PrintServer printServer = new PrintServer())
{
// Get the default PrintQueue from the PrintServer default
PrintQueue defaultPrintQueue = printServer.DefaultPrintQueue;
// Create a PrintTicket object to specify print settings (optional)
PrintTicket printTicket = new PrintTicket();
// Configure print settings, e.g., number of copies
printTicket.CopyCount = 1;
// Print the document to the default PrintQueue with the specified PrintTicket
defaultPrintQueue.AddJob("MyPrintJob", documentPath, false, printTicket);
}
Console.WriteLine("Document sent to print queue.");
}
}
using System;
using System.IO;
using System.Printing;
class Program
{
static void Main(string[] args)
{
// Specify the path to the document to be printed on the local printer
string documentPath = "path/to/your/document.pdf";
// Instantiate a Printer Server object representing the local print server
using (PrintServer printServer = new PrintServer())
{
// Get the default PrintQueue from the PrintServer default
PrintQueue defaultPrintQueue = printServer.DefaultPrintQueue;
// Create a PrintTicket object to specify print settings (optional)
PrintTicket printTicket = new PrintTicket();
// Configure print settings, e.g., number of copies
printTicket.CopyCount = 1;
// Print the document to the default PrintQueue with the specified PrintTicket
defaultPrintQueue.AddJob("MyPrintJob", documentPath, false, printTicket);
}
Console.WriteLine("Document sent to print queue.");
}
}
Imports System
Imports System.IO
Imports System.Printing
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Specify the path to the document to be printed on the local printer
Dim documentPath As String = "path/to/your/document.pdf"
' Instantiate a Printer Server object representing the local print server
Using printServer As New PrintServer()
' Get the default PrintQueue from the PrintServer default
Dim defaultPrintQueue As PrintQueue = printServer.DefaultPrintQueue
' Create a PrintTicket object to specify print settings (optional)
Dim printTicket As New PrintTicket()
' Configure print settings, e.g., number of copies
printTicket.CopyCount = 1
' Print the document to the default PrintQueue with the specified PrintTicket
defaultPrintQueue.AddJob("MyPrintJob", documentPath, False, printTicket)
End Using
Console.WriteLine("Document sent to print queue.")
End Sub
End Class
IronPrint Vs System.Printing

Esta tabela fornece uma visão geral rápida das características e funcionalidades do IronPrint e System.Printing, ajudando os desenvolvedores a tomar decisões informadas com base em seus requisitos específicos e alvos de plataforma.
Etapa 1: Crie um Novo projeto para Impressão de Documentos usando IronPrint
Crie um aplicativo de console no Visual Studio conforme mostrado abaixo.

Forneça o nome e a localização do projeto.

Selecione a versão do .NET .

Agora o projeto está criado e pronto para mais codificações.
Etapa 2: Instale o IronPrint em um novo projeto
Instale o IronPrint no Gerenciador de Pacotes do Visual Studio conforme mostrado abaixo.

IronPrint também pode ser instalado usando o comando abaixo:
Install-Package IronPrint
Passo 3: Listar impressoras de rede disponíveis para impressão de documentos
Para listar os nomes das impressoras usando IronPrint, use o código abaixo:
using System;
using System.Collections.Generic;
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Get printer names using printer drivers
List<string> printersName = Printer.GetPrinterNames();
foreach (var printer in printersName)
{
Console.WriteLine(printer);
}
}
}
}
using System;
using System.Collections.Generic;
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Get printer names using printer drivers
List<string> printersName = Printer.GetPrinterNames();
foreach (var printer in printersName)
{
Console.WriteLine(printer);
}
}
}
}
Imports System
Imports System.Collections.Generic
Imports IronPrint
Namespace IronPrintDemo
Public Class Program
Public Shared Sub Main()
' Get printer names using printer drivers
Dim printersName As List(Of String) = Printer.GetPrinterNames()
For Each printer In printersName
Console.WriteLine(printer)
Next printer
End Sub
End Class
End Namespace
Explicação do código
- Use
Printer.GetPrinterNamespara obter todos os drivers de impressora disponíveis. - Imprima os nomes usando
Console.WriteLine.
Saída

Passo 4: Imprimir documento PDF usando IronPrint
Use o código abaixo para imprimir o documento silenciosamente:
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Print the document silently
Printer.Print("sample.pdf");
}
}
}
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Print the document silently
Printer.Print("sample.pdf");
}
}
}
Imports IronPrint
Namespace IronPrintDemo
Public Class Program
Public Shared Sub Main()
' Print the document silently
Printer.Print("sample.pdf")
End Sub
End Class
End Namespace
Após a execução, o documento é adicionado à fila de impressão como mostrado na saída.
Saída

Passo 5: Imprimir documento PDF usando IronPrint com Diálogo
Use o código abaixo para imprimir o documento com o diálogo:
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Print with Dialog
Printer.ShowPrintDialog("sample.pdf");
}
}
}
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Print with Dialog
Printer.ShowPrintDialog("sample.pdf");
}
}
}
Imports IronPrint
Namespace IronPrintDemo
Public Class Program
Public Shared Sub Main()
' Print with Dialog
Printer.ShowPrintDialog("sample.pdf")
End Sub
End Class
End Namespace
Explicação do código
- Usando
ShowPrintDialogdo IronPrint podemos imprimir com Diálogo. - Quando o diálogo estiver aberto, selecione a impressora necessária para imprimir o documento.
Saída

Passo 6: Impressão avançada com configurações de impressão
Imprimir documentos com configurações avançadas é suportado no IronPrint. Suporta as seguintes Propriedades:
PaperSize: Especifica as dimensões do papel utilizadas pela impressora.PaperOrientation: Define a orientação do papel, como Automático, Retrato ou Paisagem.DPI: Define a resolução desejada de impressão em pontos por polegada. O valor padrão é 300, comumente empregado em impressão comercial. O DPI real pode ser limitado pelas capacidades da impressora.NumberOfCopies: Indica o número de cópias idênticas a serem impressas para um documento.PrinterName: Especifica o nome da impressora designada para as tarefas de impressão.PaperMargins: Determina as margens para impressão, medidas em milímetros.Grayscale: Um valor booleano determinando se imprime em escala de cinza. O valor padrão é falso.
Agora vejamos um exemplo de código:
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Configure custom print settings
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 150;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the required document
Printer.Print("sample.pdf", printSettings);
}
}
}
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Configure custom print settings
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 150;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the required document
Printer.Print("sample.pdf", printSettings);
}
}
}
Imports IronPrint
Namespace IronPrintDemo
Public Class Program
Public Shared Sub Main()
' Configure custom print settings
Dim printSettings As New PrintSettings()
printSettings.Dpi = 150
printSettings.NumberOfCopies = 2
printSettings.PaperOrientation = PaperOrientation.Portrait
' Print the required document
Printer.Print("sample.pdf", printSettings)
End Sub
End Class
End Namespace
Explicação do código
- O código começa importando o namespace necessário IronPrint, que contém as classes e métodos necessários para impressão.
- Dentro do namespace
IronPrintDemo, há uma classe chamada Program declarada como pública. - O método Main serve como o ponto de entrada do programa.
- Dentro do método Main:
- Um objeto
PrintSettingschamadoprintSettingsé instanciado para configurar configurações de impressão personalizadas. - A propriedade
DpideprintSettingsé definida como 150, indicando uma resolução de impressão de 150 pontos por polegada. - A propriedade
NumberOfCopiesdeprintSettingsé definida como 2, especificando que duas cópias idênticas do documento serão impressas. - A propriedade
PaperOrientationdeprintSettingsé definida comoPaperOrientation.Portrait, indicando que o documento será impresso em orientação retrato.
- Um objeto
- Finalmente, o método
Printer.Printé invocado com os parâmetros "sample.pdf" (o nome do documento a ser impresso) eprintSettings(as configurações de impressão personalizadas). Este método lida com o processo de impressão usando as configurações especificadas.
Saída

Licença
IronPrint da Iron Software é uma biblioteca empresarial e requer uma licença para execução. Adicionar uma chave de licença IronPrint torna o projeto ativo sem restrições ou marcas d'água. Compre uma licença aqui ou inscreva-se para uma chave de teste de 30 dias grátis aqui.
Uma vez obtida a chave de licença, a chave deve ser colocada no arquivo appSettings.json na aplicação.
{
"IronPrint.License.LicenseKey": "IRONPRINT.KEY"
}
Isso imprimirá documentos sem restrições e marcas d'água.
Conclusão
Em resumo, IronPrint e System.Printing têm cada um seus pontos fortes e são adequados para diferentes cenários. IronPrint fornece uma solução simplificada e multiplataforma com foco em simplicidade e versatilidade, enquanto System.Printing oferece integração nativa e controle minucioso, particularmente para aplicações baseadas no Windows. Os desenvolvedores devem considerar seus requisitos específicos e objetivos de plataforma ao escolher entre essas bibliotecas de impressão para seus projetos C#.
IronPrint simplifica a impressão de documentos em aplicativos .NET ao fornecer uma API amigável e ampla compatibilidade em várias plataformas e tipos de projeto. Seguindo os passos descritos neste artigo, você pode integrar facilmente a funcionalidade de impressão em seus projetos .NET, melhorando sua usabilidade e produtividade. Explore as possibilidades com o IronPrint e desbloqueie um mundo de impressão de documentos eficiente dentro de suas aplicações.
Perguntas frequentes
Como posso imprimir em uma impressora de rede usando C#?
Você pode usar o IronPrint para imprimir documentos em uma impressora de rede em C#. Ele permite enviar documentos diretamente para uma impressora de rede com métodos que lidam com tarefas de impressão programaticamente.
Quais são os passos para configurar a impressão em uma impressora de rede em C#?
Primeiro, certifique-se de ter acesso a uma impressora de rede e ao seu endereço. Instale os drivers necessários e o IronPrint através do Gerenciador de Pacotes NuGet. Em seguida, utilize os métodos do IronPrint para gerenciar e enviar trabalhos de impressão.
Como instalo o IronPrint no meu projeto C#?
Você pode instalar o IronPrint usando o Gerenciador de Pacotes NuGet no Visual Studio ou executando o comando Install-Package IronPrint no Console do Gerenciador de Pacotes.
Quais versões do .NET são compatíveis com o IronPrint?
O IronPrint oferece suporte a C#, VB.NET e F#, e é compatível com .NET 8, 7, 6, 5 e Core 3.1+.
O IronPrint pode ser usado em diferentes sistemas operacionais?
Sim, o IronPrint é compatível com Windows (7+), macOS (10+), iOS (11+) e Android API 21+ (v5 'Lollipop').
Como o IronPrint se compara ao System.Printing em C#?
O IronPrint oferece uma solução multiplataforma com foco na simplicidade, enquanto o System.Printing fornece integração e controle nativos para aplicativos baseados no Windows.
Como posso listar as impressoras de rede disponíveis usando o IronPrint?
Você pode usar o método Printer.GetPrinterNames() no IronPrint, que retorna uma lista dos drivers de impressora disponíveis.
Quais opções avançadas de impressão estão disponíveis com o IronPrint?
O IronPrint suporta configurações avançadas, incluindo tamanho do papel, orientação do papel, DPI, número de cópias, nome da impressora, margens do papel e escala de cinza.
Quais são as opções de licenciamento disponíveis para o IronPrint?
Você pode adquirir licenças do IronPrint ou se inscrever para um teste gratuito de 30 dias no site da Iron Software. A chave de licença é inserida no arquivo appSettings.json do seu aplicativo.
Qual comando é usado para instalar o IronPrint pela linha de comando?
Para instalar o IronPrint pela linha de comando, use o comando Install-Package IronPrint .



