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

Como imprimir PDF em VB .NET sem o Adobe usando o IronPrint

Imprimir documentos PDF em VB.NET requer uma biblioteca que lide com renderização, comunicação com a impressora e gerenciamento de configurações sem forçar você a instalar o Adobe Reader ou outras dependências de terceiros. IronPrint resolve esse problema com uma API limpa que funciona em plataformas Windows, macOS, Linux e móveis. Este guia explica cada etapa -- desde a instalação do pacote até o tratamento de erros comuns de impressão -- para que você possa adicionar impressão de PDF ao seu aplicativo VB.NET rápida e confiantemente.

Ao final deste tutorial, você saberá como imprimir silenciosamente, exibir o diálogo de impressão do Windows, aplicar configurações personalizadas como DPI e orientação do papel, enumerar impressoras disponíveis e lidar com exceções de forma elegante.

Como instalar o IronPrint em um projeto VB.NET?

Instalar o IronPrint leva segundos através do Gerenciador de Pacotes NuGet. Abra o Console do Gerenciador de Pacotes no Visual Studio e execute:

Install-Package IronPrint

Após a instalação, adicione a importação do namespace no topo de qualquer arquivo que precise de impressão, em seguida aplique sua chave de licença antes de chamar qualquer método do IronPrint:

Imports IronPrint

' Apply your license key (get a free trial key at ironsoftware.com)
License.LicenseKey = "YOUR-LICENSE-KEY"
Imports IronPrint

' Apply your license key (get a free trial key at ironsoftware.com)
License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

IronPrint é direcionado for .NET Framework 4.6.2 e superior, bem como .NET 6, 7, 8, 9 e 10. Ele é fornecido com motores de renderização nativos para cada plataforma, então você não precisa instalar Adobe Acrobat, Ghostscript, ou qualquer outro renderizador de PDF. O mesmo pacote NuGet funciona para Windows Forms, WPF, aplicativos de console e projetos ASP.NET escritos em VB.NET.

Os formatos de documento suportados incluem PDF, PNG, HTML, TIFF, GIF, JPEG e BMP. Você pode explorar as capacidades completas na referência de API de impressão unificada do IronPrint.

Para mais informações sobre licença e ativação, visite a documentação de chave de licença do IronPrint.

Como imprimir um PDF silenciosamente em VB.NET?

A impressão silenciosa envia um documento diretamente para a impressora sem mostrar nenhuma caixa de diálogo. Este modo é essencial para fluxos de trabalho automatizados, processamento em lote de faturas, geração de relatórios e impressão de documentos no servidor, onde não há usuário presente.

De acordo com a documentação da Microsoft sobre impressão GDI+ em .NET, a impressão tradicional em .NET envolve criar um objeto PrintDocument, conectar-se aos eventos PrintPage e manipular manualmente o layout da página. IronPrint elimina toda essa burocracia:

Imports IronPrint

Module SilentPrinting
    Sub Main()
        Dim pdfPath As String = "invoice.pdf"

        ' Print to the system default printer
        Printer.Print(pdfPath)

        ' Print to a specific printer by name
        Dim settings As New PrintSettings()
        settings.PrinterName = "Microsoft Print to PDF"
        Printer.Print(pdfPath, settings)
    End Sub
End Module
Imports IronPrint

Module SilentPrinting
    Sub Main()
        Dim pdfPath As String = "invoice.pdf"

        ' Print to the system default printer
        Printer.Print(pdfPath)

        ' Print to a specific printer by name
        Dim settings As New PrintSettings()
        settings.PrinterName = "Microsoft Print to PDF"
        Printer.Print(pdfPath, settings)
    End Sub
End Module
$vbLabelText   $csharpLabel

O método Printer.Print lida com toda a renderização de PDF internamente. Quando você chama Printer.Print(pdfPath) sem um argumento PrintSettings, o IronPrint seleciona a impressora padrão do sistema automaticamente. Quando você fornece um objeto PrintSettings com um valor PrinterName, ele direciona o trabalho para esse dispositivo específico.

Para cenários de lote, você pode percorrer uma lista de caminhos de arquivos e chamar Printer.Print para cada um. Como o IronPrint não abre nenhuma thread de UI para impressão silenciosa, ele funciona corretamente em aplicativos de console, serviços do Windows e manipuladores de requisições ASP.NET.

Para uma visão mais detalhada das opções disponíveis, leia a documentação de configurações de impressão do IronPrint.

Como exibir o diálogo de impressão antes de imprimir?

Às vezes, você precisa deixar os usuários escolherem uma impressora, ajustar o intervalo de páginas ou definir o número de cópias antes de se comprometer com um trabalho de impressão. IronPrint fornece Printer.ShowPrintDialog exatamente para este cenário:

Imports IronPrint

Module DialogPrinting
    Sub Main()
        ' Display the standard Windows print dialog
        Printer.ShowPrintDialog("report.pdf")
    End Sub
End Module
Imports IronPrint

Module DialogPrinting
    Sub Main()
        ' Display the standard Windows print dialog
        Printer.ShowPrintDialog("report.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

Quando este método é executado, o Windows exibe seu diálogo de impressão padrão. O usuário pode selecionar qualquer impressora instalada, escolher um intervalo de páginas, selecionar o número de cópias e ajustar as configurações de duplex. Após o usuário clicar em Imprimir ou Cancelar, o controle retorna para o seu código.

Este método se integra naturalmente em aplicativos Windows Forms. Você pode chamá-lo de um manipulador de clique de botão e confiar que o diálogo se comportará de forma consistente com outros aplicativos Windows que o usuário já conhece.

VB .NET Imprimir PDF Sem Abrir o Adobe com IronPrint: Imagem 1 - Diálogo de impressão

A página de exemplos de diálogo de impressão mostra casos de uso adicionais, incluindo a pré-seleção de uma impressora ou o pré-preenchimento do número de cópias antes de o diálogo abrir.

Como personalizar as configurações de impressão de PDF em VB.NET?

A classe PrintSettings proporciona controle programático completo sobre todos os aspectos de um trabalho de impressão. Você pode definir DPI, tamanho do papel, orientação, número de cópias e a impressora de destino - tudo antes que o trabalho chegue à fila de impressão:

Imports IronPrint

Module CustomPrintSettings
    Sub Main()
        Dim settings As New PrintSettings() With {
            .Dpi = 300,
            .NumberOfCopies = 2,
            .PaperOrientation = PaperOrientation.Landscape,
            .PaperSize = PaperSize.A4,
            .PrinterName = "Office Printer"
        }

        Printer.Print("document.pdf", settings)
    End Sub
End Module
Imports IronPrint

Module CustomPrintSettings
    Sub Main()
        Dim settings As New PrintSettings() With {
            .Dpi = 300,
            .NumberOfCopies = 2,
            .PaperOrientation = PaperOrientation.Landscape,
            .PaperSize = PaperSize.A4,
            .PrinterName = "Office Printer"
        }

        Printer.Print("document.pdf", settings)
    End Sub
End Module
$vbLabelText   $csharpLabel

Entendendo as Principais Propriedades de PrintSettings

A propriedade Dpi controla a resolução de saída. Um valor de 300 é padrão para documentos profissionais; 600 é apropriado para gráficos de alta qualidade ou desenhos de engenharia. Valores mais baixos, como 150, são úteis para impressões de rascunho onde a velocidade importa mais do que a qualidade.

NumberOfCopies informa à impressora quantas cópias produzir em um único trabalho. Definir este valor como 3 é equivalente a um usuário pressionar Ctrl+P e inserir 3 no campo de cópias - mas você controla isso a partir do código sem qualquer interação com a interface do usuário.

PaperOrientation aceita PaperOrientation.Portrait ou PaperOrientation.Landscape. Selecionar a orientação errada para um PDF desenhado em modo paisagem faz com que o conteúdo seja cortado ou reduzido. Definir isto explicitamente garante que a saída corresponda ao design do documento.

PaperSize aceita tamanhos padrão como PaperSize.A4, PaperSize.Letter e PaperSize.Legal. Isso é importante quando seu ambiente de impressão mistura bandejas de papel com diferentes tamanhos carregados.

Escolhendo o Nome Correto da Impressora

A string PrinterName deve corresponder exatamente ao nome registrado da impressora no Windows, incluindo capitalização e espaçamento. Use Printer.GetPrinterNames() (coberto na próxima seção) para recuperar a lista de nomes válidos em tempo de execução.

Para opções de personalização mais avançadas, visite a página de recursos avançados de personalização de impressão.

Como Você Enumera e Seleciona Impressoras Programaticamente?

Em ambientes corporativos, as estações de trabalho geralmente têm acesso a dezenas de impressoras de rede. IronPrint torna simples listar todas as impressoras disponíveis e escolher a correta em tempo de execução:

Imports IronPrint

Module PrinterManagement
    Sub Main()
        ' Retrieve all available printers
        Dim printers As List(Of String) = Printer.GetPrinterNames()

        Console.WriteLine($"Found {printers.Count} printer(s):")
        For Each printerName As String In printers
            Console.WriteLine($"  - {printerName}")
        Next

        ' Print to the first available printer
        If printers.Count > 0 Then
            Dim settings As New PrintSettings()
            settings.PrinterName = printers(0)
            Printer.Print("document.pdf", settings)
        Else
            Console.WriteLine("No printers found. Check system configuration.")
        End If
    End Sub
End Module
Imports IronPrint

Module PrinterManagement
    Sub Main()
        ' Retrieve all available printers
        Dim printers As List(Of String) = Printer.GetPrinterNames()

        Console.WriteLine($"Found {printers.Count} printer(s):")
        For Each printerName As String In printers
            Console.WriteLine($"  - {printerName}")
        Next

        ' Print to the first available printer
        If printers.Count > 0 Then
            Dim settings As New PrintSettings()
            settings.PrinterName = printers(0)
            Printer.Print("document.pdf", settings)
        Else
            Console.WriteLine("No printers found. Check system configuration.")
        End If
    End Sub
End Module
$vbLabelText   $csharpLabel

Printer.GetPrinterNames() consulta o subsistema de impressão do Windows e retorna todas as impressoras que o usuário atual pode acessar, incluindo impressoras USB locais, impressoras de rede, impressoras virtuais como Microsoft Print to PDF e qualquer driver de impressora instalado por meio de software de terceiros.

Roteando Documentos para a Impressora Certa

Em configurações com várias impressoras, você pode querer direcionar documentos grandes para uma impressora departamental de alta velocidade e documentos pequenos para um dispositivo de mesa próximo. Você pode implementar essa lógica verificando a contagem de páginas ou o tamanho do arquivo do documento e, em seguida, selecionando o nome da impressora apropriado da lista.

VB .NET Imprimir PDF Sem Abrir o Adobe com IronPrint: Imagem 2 - Seleção de impressora

Leia a documentação de recursos de informações da impressora para aprender sobre propriedades adicionais que você pode consultar, como status da impressora e bandeja de papel padrão.

Como Você Lida com Erros de Impressão em VB.NET?

O código de impressão de produção deve lidar com falhas de forma graciosa. Os caminhos dos arquivos podem estar errados, as impressoras podem estar offline ou a conta de usuário pode não ter permissões de impressão. Envolver suas chamadas de impressão em um tratamento estruturado de exceções impede que exceções não tratadas travem seu aplicativo:

Imports IronPrint
Imports System.IO

Module ErroHandling
    Sub Main()
        Dim filePath As String = "document.pdf"

        If Not File.Exists(filePath) Then
            Console.WriteLine("PDF file not found. Verify the path and try again.")
            Return
        End If

        Try
            Dim settings As New PrintSettings()
            settings.PrinterName = "Office Printer"
            Printer.Print(filePath, settings)
            Console.WriteLine("Print job sent successfully.")
        Catch ex As Exception
            Console.WriteLine($"Printing failed: {ex.Message}")
        End Try
    End Sub
End Module
Imports IronPrint
Imports System.IO

Module ErroHandling
    Sub Main()
        Dim filePath As String = "document.pdf"

        If Not File.Exists(filePath) Then
            Console.WriteLine("PDF file not found. Verify the path and try again.")
            Return
        End If

        Try
            Dim settings As New PrintSettings()
            settings.PrinterName = "Office Printer"
            Printer.Print(filePath, settings)
            Console.WriteLine("Print job sent successfully.")
        Catch ex As Exception
            Console.WriteLine($"Printing failed: {ex.Message}")
        End Try
    End Sub
End Module
$vbLabelText   $csharpLabel

Erros Comuns e Como Corrigi-los

A tabela a seguir descreve os erros de impressão mais frequentes e suas soluções:

Erros Comuns de Impressão de PDF em VB.NET e Soluções
Erro Causa Solução
Impressora não encontrada Nome da impressora não corresponde à entrada no registro do Windows Chame `Printer.GetPrinterNames()` e use o nome exato retornado
Páginas em branco impressas Caminho de arquivo inválido ou PDF corrompido Use `File.Exists` para verificar o caminho; abra o PDF em um visualizador para verificar a integridade
Qualidade de impressão ruim DPI definido muito baixo Defina `PrintSettings.Dpi` para 300 ou superior
Acesso negado Permissões de impressão insuficientes Execute o aplicativo com uma conta de usuário que tenha privilégios de impressão na impressora de destino
Impressora offline Problema de conectividade de rede ou dispositivo Verifique o status da impressora em Dispositivos e Impressoras do Windows; tente novamente após a reconexão

VB .NET Imprimir PDF Sem Abrir o Adobe com IronPrint: Imagem 3 - Exemplo de erro

Para orientações adicionais de solução de problemas, consulte o guia de solicitação de engenharia e solução de problemas do IronPrint ou entre em contato com o suporte técnico da Iron Software.

Como combinar a geração e impressão de PDF em VB.NET?

Um fluxo de trabalho comum envolve gerar um PDF em tempo de execução e, em seguida, imprimi-lo imediatamente — por exemplo, criar uma fatura a partir de registros de banco de dados e enviá-la à impressora em um passo. IronPDF lida com a criação de PDFs, e IronPrint lida com a saída:

Por que combinar IronPDF e IronPrint?

IronPDF converte HTML, ASPX e documentos existentes em arquivos PDF devidamente formatados. Uma vez que o PDF está na memória ou salvo em disco, IronPrint o envia à impressora sem a necessidade do Adobe Reader. Ambas as bibliotecas compartilham o mesmo modelo de implantação baseado no NuGet, portanto, você adiciona dois pacotes e escreve um código VB.NET direto para cobrir todo o pipeline de geração e impressão.

Esta abordagem é particularmente eficaz para:

  • Impressão de faturas e recibos — gerar PDFs a partir de modelos HTML, imprimir imediatamente
  • Geração de relatórios — converter resultados de consultas de banco de dados em PDFs formatados, imprimir sob demanda
  • Impressão de rótulos e códigos de barras — combinar IronBarcode para geração de código de barras com IronPrint para saída
  • Processamento de documentos em lote — iterar sobre registros, gerar um PDF por registro, imprimir cada um em sequência

Para aprender como gerar PDFs a partir de HTML em VB.NET, visite a documentação do IronPDF para VB.NET.

De acordo com a especificação da W3C para consultas de mídia de impressão, controlar o layout de impressão através de regras CSS @page é a abordagem padrão para fluxos de trabalho de HTML para impressão. IronPDF respeita essas regras CSS durante a renderização, então o PDF que você gera terá as margens, quebras de página e tamanhos corretos antes que o IronPrint o envie para a impressora.

Como imprimir várias páginas e controlar intervalos de páginas?

Ao imprimir documentos grandes, pode ser necessário imprimir apenas páginas específicas — por exemplo, páginas de 1 a 5 de um relatório de 50 páginas. A classe PrintSettings do IronPrint suporta configuração de intervalo de páginas:

Configurando intervalos de páginas

Você pode especificar uma página inicial e uma página final dentro do objeto PrintSettings. Os números das páginas começam em um, correspondendo à convenção que os usuários esperam dos diálogos de impressão padrão. Se você omitir o intervalo de páginas, o IronPrint imprime o documento inteiro.

A impressão por intervalo de páginas é especialmente útil em ambientes de alto volume onde reimprimir uma única página danificada é mais rápido do que reimprimir todo o documento. Combinado com NumberOfCopies, você pode controlar precisamente quantas cópias de quais páginas chegam à bandeja de saída.

Para a lista completa de propriedades PrintSettings, incluindo intervalo de páginas, visite o guia de como configuração de impressão do IronPrint.

Imprimindo em tons de cinza

Algumas impressoras têm como padrão a saída em cores mesmo quando o documento não contém conteúdo colorido, desperdiçando toner ou tinta. Você pode forçar a saída em escala de cinza através de PrintSettings. Essa configuração está disponível em alvos Windows e macOS e funciona para todos os formatos de documentos suportados, não apenas PDFs.

A visão geral de recursos do IronPrint lista todas as configurações de impressão disponíveis com exemplos para cada plataforma.

Quais são os seus próximos passos?

Agora você tem os blocos de construção para impressão de PDF em aplicações VB.NET:

  • Impressão silenciosa -- Printer.Print(path) para fluxos de trabalho automatizados
  • Impressão com diálogo -- Printer.ShowPrintDialog(path) para trabalhos controlados pelo usuário
  • Configurações personalizadas -- PrintSettings para DPI, orientação, cópias e seleção de impressora
  • Enumeração de impressoras -- Printer.GetPrinterNames() para roteamento dinâmico de impressoras
  • Tratamento de erros — manuseio estruturado de exceções com validação de arquivo pré-impressão
  • Fluxos de trabalho combinados — IronPDF para geração, IronPrint para saída

Para colocar essas capacidades em prática, comece sua avaliação gratuita do IronPrint e explore esses recursos adicionais:

Perguntas frequentes

O que é IronPrint?

IronPrint é uma biblioteca que simplifica o processo de impressão de documentos PDF em VB .NET , eliminando a necessidade do Adobe Reader e outras dependências.

Como o IronPrint facilita a impressão de PDFs em VB.NET?

O IronPrint permite a impressão de PDFs em VB.NET, fornecendo um método simples que funciona em diversas plataformas, incluindo Windows, macOS e dispositivos móveis.

Posso realizar impressões silenciosas com o IronPrint?

Sim, o IronPrint suporta impressão silenciosa, permitindo que documentos PDF sejam impressos sem exibir caixas de diálogo ou exigir interação do usuário.

O IronPrint é compatível com plataformas móveis?

Sim, o IronPrint foi projetado para funcionar em plataformas Windows, macOS e móveis, oferecendo flexibilidade em aplicações de impressão de PDF.

O IronPrint requer alguma dependência externa?

Não, o IronPrint é uma solução independente, o que significa que você não precisa de software adicional como o Adobe Reader para imprimir PDFs em VB .NET.

Quais as vantagens que o IronPrint oferece em relação aos métodos tradicionais de impressão em PDF?

O IronPrint oferece um processo de impressão de PDF simplificado e eficiente, eliminando a necessidade de soluções alternativas complexas e dependências externas, facilitando a integração em aplicações .NET.

Posso personalizar as configurações de impressão com o IronPrint?

Sim, o IronPrint oferece opções para personalizar as configurações de impressão por meio da classe PrintSettings, permitindo que os desenvolvedores controlem DPI, orientação do papel, número de cópias e seleção da impressora.

Como o IronPrint melhora o processo de impressão de PDFs em aplicações VB.NET?

O IronPrint aprimora o processo de impressão em PDF, oferecendo um método único e fácil de usar para imprimir em diversas plataformas sem a necessidade de software adicional.

O IronPrint é adequado para desenvolvimento multiplataforma?

Sim, o IronPrint é adequado para desenvolvimento multiplataforma, pois suporta impressão em Windows, macOS, Linux e plataformas móveis.

Que tipo de suporte a IronPrint oferece aos desenvolvedores?

A IronPrint oferece suporte aos desenvolvedores por meio de documentação detalhada, exemplos de código e acesso a suporte técnico, garantindo uma experiência de desenvolvimento tranquila.

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