Ir para o conteúdo do rodapé
USANDO O IRONPRINT

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#

  1. Crie um novo projeto para imprimir documentos usando IronPrint.
  2. Instale IronPrint em um novo projeto.
  3. Liste as impressoras de rede disponíveis para impressão de documentos.
  4. Imprima documentos PDF usando IronPrint.
  5. Imprima documentos PDF usando IronPrint com Diálogo.
  6. 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:

  1. Certifique-se de que uma impressora de rede está acessível a partir da máquina onde sua aplicação C# será executada.
  2. O endereço de rede da impressora (endereço IP ou nome da impressora de rede).
  3. Driver/drivers de impressora necessários instalados na máquina.
  4. 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:

  1. 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.
  2. 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);
        }
    }
}
$vbLabelText   $csharpLabel

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:

  1. PrintQueue: Representa uma impressora ou dispositivo de impressão conectado ao sistema.
  2. PrintServer: Representa um servidor de impressão na rede.
  3. PrintSystemJobInfo: Fornece informações sobre um trabalho de impressão, como seu status e propriedades.
  4. 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:

  1. Seleção de PrintQueue: Você precisa identificar o objeto PrintQueue que representa a impressora que deseja usar para imprimir.
  2. Configuração de PrintTicket: Opcionalmente, você pode configurar o objeto PrintTicket para especificar configurações de impressão, como tamanho do papel, orientação e número de cópias.
  3. Impressão de Documentos: Finalmente, você envia o documento a ser impresso para a PrintQueue selecionada.

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.");
    }
}
$vbLabelText   $csharpLabel

IronPrint Vs System.Printing

Como Imprimir com Impressora de Rede em C#: Figura 1 - Uma tabela de comparação rápida entre IronPrint e 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.

Como Imprimir com Impressora de Rede em C#: Figura 2 - Criando uma aplicação de console

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

Como Imprimir com Impressora de Rede em C#: Figura 3 - Forneça um nome para o projeto

Selecione a versão do .NET .

Como Imprimir com Impressora de Rede em C#: Figura 4 - Selecione a versão .NET apropriada

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.

Como Imprimir com Impressora de Rede em C#: Figura 5 - Procure IronPrint através do Gerenciador de Pacotes do Visual Studio

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);
            }
        }
    }
}
$vbLabelText   $csharpLabel

Explicação do código

  1. Use Printer.GetPrinterNames para obter todos os drivers de impressora disponíveis.
  2. Imprima os nomes usando Console.WriteLine.

Saída

Como Imprimir com Impressora de Rede em C#: Figura 6 - Exemplo de saída de impressoras disponíveis

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");
        }
    }
}
$vbLabelText   $csharpLabel

Após a execução, o documento é adicionado à fila de impressão como mostrado na saída.

Saída

Como Imprimir com Impressora de Rede em C#: Figura 7 - Exemplo de saída mostrando o documento sendo adicionado à fila de impressão

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");
        }
    }
}
$vbLabelText   $csharpLabel

Explicação do código

  1. Usando ShowPrintDialog do IronPrint podemos imprimir com Diálogo.
  2. Quando o diálogo estiver aberto, selecione a impressora necessária para imprimir o documento.

Saída

Como Imprimir com Impressora de Rede em C#: Figura 8 - Selecione a impressora correta

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:

  1. PaperSize: Especifica as dimensões do papel utilizadas pela impressora.
  2. PaperOrientation: Define a orientação do papel, como Automático, Retrato ou Paisagem.
  3. 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.
  4. NumberOfCopies: Indica o número de cópias idênticas a serem impressas para um documento.
  5. PrinterName: Especifica o nome da impressora designada para as tarefas de impressão.
  6. PaperMargins: Determina as margens para impressão, medidas em milímetros.
  7. 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);
        }
    }
}
$vbLabelText   $csharpLabel

Explicação do código

  1. O código começa importando o namespace necessário IronPrint, que contém as classes e métodos necessários para impressão.
  2. Dentro do namespace IronPrintDemo, há uma classe chamada Program declarada como pública.
  3. O método Main serve como o ponto de entrada do programa.
  4. Dentro do método Main:
    • Um objeto PrintSettings chamado printSettings é instanciado para configurar configurações de impressão personalizadas.
    • A propriedade Dpi de printSettings é definida como 150, indicando uma resolução de impressão de 150 pontos por polegada.
    • A propriedade NumberOfCopies de printSettings é definida como 2, especificando que duas cópias idênticas do documento serão impressas.
    • A propriedade PaperOrientation de printSettings é definida como PaperOrientation.Portrait, indicando que o documento será impresso em orientação retrato.
  5. Finalmente, o método Printer.Print é invocado com os parâmetros "sample.pdf" (o nome do documento a ser impresso) e printSettings (as configurações de impressão personalizadas). Este método lida com o processo de impressão usando as configurações especificadas.

Saída

Como Imprimir com Impressora de Rede em C#: Figura 9 - Exemplo de saída mostrando o documento PDF adicionado à fila de impressão para impressão

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 .

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

Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me