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

Como criar um visualizador de PDF em VB.NET com IronPDF: um tutorial completo

Exibir documentos PDF diretamente em aplicativos VB .NET ainda pode ser complicado para muitos desenvolvedores. O .NET Framework e o .NET Core não oferecem maneiras integradas de visualizar arquivos PDF, então as pessoas geralmente dependem de controles ActiveX antigos ou ferramentas de terceiros complexas. Isso pode ser frustrante tanto para desenvolvedores quanto para usuários.

Se você estiver desenvolvendo um aplicativo Windows Forms ou WPF, precisará de uma solução confiável para visualização de PDFs. Sejam faturas, relatórios ou até mesmo documentos do Word convertidos para o formato PDF, o IronPDF simplifica esse processo, eliminando a necessidade de componentes externos e oferecendo opções poderosas para criar, editar e processar PDFs diretamente no seu projeto.

Neste tutorial, vou guiá-lo passo a passo na criação de um visualizador de PDF em VB .NET . Ao final, você saberá como gerar e exibir documentos PDF em seu aplicativo como um especialista. Além disso, você também verá como é fácil adicionar recursos como zoom, navegação e impressão. Experimentei essa abordagem em um projeto interno recente e ela acelerou significativamente o processo de revisão de relatórios da nossa equipe.

O que torna a visualização de PDFs em VB .NET um desafio?

A caixa de ferramentas do Visual Studio não possui um controle padrão para visualização de PDF. Os desenvolvedores costumam usar o Internet Explorer ou controles WebBrowser incorporados para exibir arquivos PDF, mas essas abordagens dependem do leitor de PDF padrão do usuário e podem gerar custos ocultos de implementação.

As soluções tradicionais também podem exigir a instalação de software externo ou configuração manual para o correto processamento, impressão ou renderização de formulários PDF, o que aumenta a complexidade e limita a capacidade de personalizar a exibição de PDFs em vários ambientes Windows.

Como o IronPDF simplifica a visualização de PDFs em VB .NET?

O IronPDF transforma o processamento de PDFs em aplicações VB .NET , fornecendo uma biblioteca independente que não requer o Adobe Reader ou outros visualizadores externos. Além da visualização básica, permite que os desenvolvedores criem, editem, manipulem e renderizem PDFs programaticamente usando padrões .NET familiares.

A arquitetura da biblioteca utiliza um mecanismo de renderização baseado no Chrome, garantindo a exibição perfeita de PDFs complexos em cada pixel, com suporte completo para recursos modernos como formulários, anotações e multimídia incorporada. Essa abordagem garante uma renderização consistente em todos os ambientes Windows.

As principais funcionalidades incluem

  • Renderização direta de PDF sem necessidade de download ou dependência de navegador
  • Conversão de documentos Word ou HTML para o formato PDF
  • Edição, divisão e fusão de páginas PDF
  • Preenchimento e extração de formulários em PDF
  • Suporte integrado para impressão com configurações personalizáveis
  • Suporte para modelos, imagens e arquivos PDF com várias páginas

Essas características fazem do IronPDF uma solução altamente personalizável para aplicações .NET , permitindo que os desenvolvedores manipulem documentos PDF complexos em um ambiente de aplicação desktop ou web.

Como instalar o IronPDF em seu projeto VB .NET ?

A configuração do IronPDF requer apenas alguns passos através do Gerenciador de Pacotes NuGet . Abra seu projeto VB .NET Windows Forms no Visual Studio e siga estes passos:

  1. Abra seu novo projeto no Visual Studio com a estrutura de destino ou .NET Core.
  2. Clique com o botão direito do mouse no seu projeto no Explorador de Soluções.
  3. Selecione "Gerenciar pacotes NuGet "
  4. Procure por "IronPDF" na aba Procurar.
  5. Clique em Instalar no pacote IronPDF.

Após a instalação, adicione esta declaração de importação aos seus arquivos VB .NET :

Imports IronPdf
Imports IronPdf
$vbLabelText   $csharpLabel

Esta declaração de importação concede ao seu projeto VB .NET acesso a todas as classes e métodos do IronPDF , permitindo que você carregue, renderize, imprima e manipule documentos PDF programaticamente.

Essa configuração inclui todos os componentes de tempo de execução necessários, eliminando a configuração manual e evitando custos ocultos.

Como criar um visualizador de PDF básico no Windows Forms?

A criação de um visualizador de PDF começa com a criação de um aplicativo Windows Forms e a implementação dos recursos de renderização do IronPDF. Aqui está uma abordagem simplificada para exibir PDFs em seu aplicativo:

Imports System.Drawing
Imports System.IO
Imports IronPdf
Public Class Form1
    Private currentPdf As PdfDocument
    Private pdfBitmaps() As Bitmap
    Private currentPage As Integer = 0
    Private zoomLevel As Double = 1.0
    ' Load PDF Button
    Private Sub LoadPdfButton_Click(sender As Object, e As EventArgs) Handles LoadPdfButton.Click
        Using openFileDialog As New OpenFileDialog()
            openFileDialog.Filter = "PDF Files (*.pdf)|*.pdf"
            If openFileDialog.ShowDialog() = DialogResult.OK Then
                ' Load PDF
                currentPdf = PdfDocument.FromFile(openFileDialog.FileName)
                ' Render all pages to image files
                Dim filePaths As String() = currentPdf.RasterizeToImageFiles("page_*.png")
                ' Load images into memory
                Dim pageList As New List(Of Bitmap)()
                For Each filePath As String In filePaths
                    Using ms As New MemoryStream(File.ReadAllBytes(filePath))
                        Dim bmp As New Bitmap(ms)
                        pageList.Add(bmp)
                    End Using
                Next
                pdfBitmaps = pageList.ToArray()
                currentPage = 0
                zoomLevel = 1.0
                DisplayCurrentPage()
            End If
        End Using
    End Sub
    ' Show the current page in PictureBox
    Private Sub DisplayCurrentPage()
        If pdfBitmaps IsNot Nothing AndAlso currentPage < pdfBitmaps.Length Then
            Dim bmp As Bitmap = pdfBitmaps(currentPage)
            ' Apply zoom
            Dim newWidth As Integer = CInt(bmp.Width * zoomLevel)
            Dim newHeight As Integer = CInt(bmp.Height * zoomLevel)
            Dim zoomedBmp As New Bitmap(bmp, newWidth, newHeight)
            PictureBox1.Image = zoomedBmp
        Else
            PictureBox1.Image = Nothing
        End If
        UpdateNavigationButtons()
    End Sub
Imports System.Drawing
Imports System.IO
Imports IronPdf
Public Class Form1
    Private currentPdf As PdfDocument
    Private pdfBitmaps() As Bitmap
    Private currentPage As Integer = 0
    Private zoomLevel As Double = 1.0
    ' Load PDF Button
    Private Sub LoadPdfButton_Click(sender As Object, e As EventArgs) Handles LoadPdfButton.Click
        Using openFileDialog As New OpenFileDialog()
            openFileDialog.Filter = "PDF Files (*.pdf)|*.pdf"
            If openFileDialog.ShowDialog() = DialogResult.OK Then
                ' Load PDF
                currentPdf = PdfDocument.FromFile(openFileDialog.FileName)
                ' Render all pages to image files
                Dim filePaths As String() = currentPdf.RasterizeToImageFiles("page_*.png")
                ' Load images into memory
                Dim pageList As New List(Of Bitmap)()
                For Each filePath As String In filePaths
                    Using ms As New MemoryStream(File.ReadAllBytes(filePath))
                        Dim bmp As New Bitmap(ms)
                        pageList.Add(bmp)
                    End Using
                Next
                pdfBitmaps = pageList.ToArray()
                currentPage = 0
                zoomLevel = 1.0
                DisplayCurrentPage()
            End If
        End Using
    End Sub
    ' Show the current page in PictureBox
    Private Sub DisplayCurrentPage()
        If pdfBitmaps IsNot Nothing AndAlso currentPage < pdfBitmaps.Length Then
            Dim bmp As Bitmap = pdfBitmaps(currentPage)
            ' Apply zoom
            Dim newWidth As Integer = CInt(bmp.Width * zoomLevel)
            Dim newHeight As Integer = CInt(bmp.Height * zoomLevel)
            Dim zoomedBmp As New Bitmap(bmp, newWidth, newHeight)
            PictureBox1.Image = zoomedBmp
        Else
            PictureBox1.Image = Nothing
        End If
        UpdateNavigationButtons()
    End Sub
Imports System.Drawing
Imports System.IO
Imports IronPdf

Public Class Form1
    Private currentPdf As PdfDocument
    Private pdfBitmaps() As Bitmap
    Private currentPage As Integer = 0
    Private zoomLevel As Double = 1.0

    ' Load PDF Button
    Private Sub LoadPdfButton_Click(sender As Object, e As EventArgs) Handles LoadPdfButton.Click
        Using openFileDialog As New OpenFileDialog()
            openFileDialog.Filter = "PDF Files (*.pdf)|*.pdf"
            If openFileDialog.ShowDialog() = DialogResult.OK Then
                ' Load PDF
                currentPdf = PdfDocument.FromFile(openFileDialog.FileName)
                ' Render all pages to image files
                Dim filePaths As String() = currentPdf.RasterizeToImageFiles("page_*.png")
                ' Load images into memory
                Dim pageList As New List(Of Bitmap)()
                For Each filePath As String In filePaths
                    Using ms As New MemoryStream(File.ReadAllBytes(filePath))
                        Dim bmp As New Bitmap(ms)
                        pageList.Add(bmp)
                    End Using
                Next
                pdfBitmaps = pageList.ToArray()
                currentPage = 0
                zoomLevel = 1.0
                DisplayCurrentPage()
            End If
        End Using
    End Sub

    ' Show the current page in PictureBox
    Private Sub DisplayCurrentPage()
        If pdfBitmaps IsNot Nothing AndAlso currentPage < pdfBitmaps.Length Then
            Dim bmp As Bitmap = pdfBitmaps(currentPage)
            ' Apply zoom
            Dim newWidth As Integer = CInt(bmp.Width * zoomLevel)
            Dim newHeight As Integer = CInt(bmp.Height * zoomLevel)
            Dim zoomedBmp As New Bitmap(bmp, newWidth, newHeight)
            PictureBox1.Image = zoomedBmp
        Else
            PictureBox1.Image = Nothing
        End If
        UpdateNavigationButtons()
    End Sub
End Class
$vbLabelText   $csharpLabel

Explicação do código:

  • currentPdf armazena o documento PDF carregado.
  • A pasta pdfBitmaps armazena imagens bitmap para cada página do PDF, permitindo que sejam exibidas em um controle PictureBox.
  • O botão LoadPdfButton_Click utiliza uma caixa de diálogo OpenFileDialog padrão para permitir que os usuários selecionem um arquivo PDF.
  • PdfDocument.FromFile carrega o documento PDF e RasterizeToImageFiles converte cada página em arquivos de imagem.
  • Cada arquivo é lido na memória como um Bitmap, adicionado à matriz e a primeira página é exibida com DisplayCurrentPage().

Ao executar o programa, poderemos carregar um arquivo PDF através da janela pop-up que aparecerá ao clicar no botão "Carregar PDF".

Como implementar controles de navegação em PDF?

A navegação melhora a experiência do usuário, permitindo a movimentação por documentos com várias páginas. Adicione botões "Anterior" e "Próximo" ao seu formulário com esta implementação:

' Next Page Button
Private Sub NextButton_Click(sender As Object, e As EventArgs) Handles NextButton.Click
    If currentPage < pdfBitmaps.Length - 1 Then
        currentPage += 1
        DisplayCurrentPage()
    End If
End Sub
' Previous Page Button
Private Sub PreviousButton_Click(sender As Object, e As EventArgs) Handles PreviousButton.Click
    If currentPage > 0 Then
        currentPage -= 1
        DisplayCurrentPage()
    End If
End Sub
' Next Page Button
Private Sub NextButton_Click(sender As Object, e As EventArgs) Handles NextButton.Click
    If currentPage < pdfBitmaps.Length - 1 Then
        currentPage += 1
        DisplayCurrentPage()
    End If
End Sub
' Previous Page Button
Private Sub PreviousButton_Click(sender As Object, e As EventArgs) Handles PreviousButton.Click
    If currentPage > 0 Then
        currentPage -= 1
        DisplayCurrentPage()
    End If
End Sub
' Next Page Button
Private Sub NextButton_Click(sender As Object, e As EventArgs) Handles NextButton.Click
    If currentPage < pdfBitmaps.Length - 1 Then
        currentPage += 1
        DisplayCurrentPage()
    End If
End Sub

' Previous Page Button
Private Sub PreviousButton_Click(sender As Object, e As EventArgs) Handles PreviousButton.Click
    If currentPage > 0 Then
        currentPage -= 1
        DisplayCurrentPage()
    End If
End Sub
$vbLabelText   $csharpLabel

Esses procedimentos Sub privados lidam com a navegação pelas páginas do PDF usando Object sender, EventArgs e. Os botões atualizam a página atual e chamam o método DisplayCurrentPage() para renderizar a página PDF no formulário do Windows.

' Update navigation controls and page label
Private Sub UpdateNavigationButtons()
    PreviousButton.Enabled = currentPage > 0
    NextButton.Enabled = currentPage < pdfBitmaps.Length - 1
    PageLabel.Text = $"Page {currentPage + 1} of {pdfBitmaps.Length}"
End Sub
' Update navigation controls and page label
Private Sub UpdateNavigationButtons()
    PreviousButton.Enabled = currentPage > 0
    NextButton.Enabled = currentPage < pdfBitmaps.Length - 1
    PageLabel.Text = $"Page {currentPage + 1} of {pdfBitmaps.Length}"
End Sub
' Update navigation controls and page label
Private Sub UpdateNavigationButtons()
    PreviousButton.Enabled = currentPage > 0
    NextButton.Enabled = currentPage < pdfBitmaps.Length - 1
    PageLabel.Text = $"Page {currentPage + 1} of {pdfBitmaps.Length}"
End Sub
$vbLabelText   $csharpLabel

Isso atualiza os estados dos botões para que os usuários não possam navegar além da primeira ou da última página, enquanto o rótulo exibe o número da página atual e o número total de páginas.

Saída

Como carregar arquivos PDF de diferentes fontes?

O IronPDF suporta o carregamento de PDFs de diversas fontes além de arquivos locais. Essa flexibilidade permite a integração com bancos de dados, serviços web e fluxos de memória:

Carregando a partir de um URL

' Load PDF from URL
Private Sub LoadUrlButton_Click(sender As Object, e As EventArgs) Handles LoadUrlButton.Click
    Dim url As String = UrlTextBox.Text.Trim()
    If String.IsNullOrEmpty(url) Then
        MessageBox.Show("Please enter a valid URL.")
        Return
    End If
    Try
        LoadFromUrl(url)
    Catch ex As Exception
        MessageBox.Show("Failed to load PDF: " & ex.Message)
    End Try
End Sub
' Load PDF from URL
Private Sub LoadUrlButton_Click(sender As Object, e As EventArgs) Handles LoadUrlButton.Click
    Dim url As String = UrlTextBox.Text.Trim()
    If String.IsNullOrEmpty(url) Then
        MessageBox.Show("Please enter a valid URL.")
        Return
    End If
    Try
        LoadFromUrl(url)
    Catch ex As Exception
        MessageBox.Show("Failed to load PDF: " & ex.Message)
    End Try
End Sub
' Load PDF from URL
Private Sub LoadUrlButton_Click(sender As Object, e As EventArgs) Handles LoadUrlButton.Click
    Dim url As String = UrlTextBox.Text.Trim()
    If String.IsNullOrEmpty(url) Then
        MessageBox.Show("Please enter a valid URL.")
        Return
    End If
    Try
        LoadFromUrl(url)
    Catch ex As Exception
        MessageBox.Show("Failed to load PDF: " & ex.Message)
    End Try
End Sub
$vbLabelText   $csharpLabel

Esta Subprivada verifica a URL de entrada, exibe um alerta se for inválida e chama LoadFromUrl para renderizar o PDF dinamicamente.

Private Sub LoadFromUrl(url As String)
    Dim renderer As New ChromePdfRenderer()
    renderer.RenderingOptions.EnableJavaScript = True
    renderer.RenderingOptions.CssMediaType = Rendering.PdfCssMediaType.Print
    renderer.RenderingOptions.WaitFor.JavaScript(3000)
    currentPdf = renderer.RenderUrlAsPdf(url)
    LoadPdfBitmaps()
End Sub
Private Sub LoadFromUrl(url As String)
    Dim renderer As New ChromePdfRenderer()
    renderer.RenderingOptions.EnableJavaScript = True
    renderer.RenderingOptions.CssMediaType = Rendering.PdfCssMediaType.Print
    renderer.RenderingOptions.WaitFor.JavaScript(3000)
    currentPdf = renderer.RenderUrlAsPdf(url)
    LoadPdfBitmaps()
End Sub
Private Sub LoadFromUrl(url As String)
    Dim renderer As New ChromePdfRenderer()
    renderer.RenderingOptions.EnableJavaScript = True
    renderer.RenderingOptions.CssMediaType = Rendering.PdfCssMediaType.Print
    renderer.RenderingOptions.WaitFor.JavaScript(3000)
    currentPdf = renderer.RenderUrlAsPdf(url)
    LoadPdfBitmaps()
End Sub
$vbLabelText   $csharpLabel

Este programa utiliza o ChromePdfRenderer para converter um URL de página web em um documento PDF. As opções permitem a execução de JavaScript e CSS otimizado para impressão; em seguida, as páginas do PDF são carregadas como bitmaps.

Saída

Como criar um visualizador de PDF em VB .NET com IronPDF: Um tutorial completo: Figura 3 - URL para PDF exibida com o visualizador de PDF

Carregando conteúdo HTML

Private Sub LoadHtmlButton_Click(sender As Object, e As EventArgs) Handles LoadHtmlButton.Click
    Dim htmlContent As String = "<html><body><h1>Hello PDF!</h1><p>This is a hardcoded HTML PDF test.</p></body></html>"
    LoadFromHtml(htmlContent)
End Sub
Private Sub LoadFromHtml(htmlContent As String)
    Dim renderer As New ChromePdfRenderer()
    currentPdf = renderer.RenderHtmlAsPdf(htmlContent)
    LoadPdfBitmaps()
End Sub
Private Sub LoadHtmlButton_Click(sender As Object, e As EventArgs) Handles LoadHtmlButton.Click
    Dim htmlContent As String = "<html><body><h1>Hello PDF!</h1><p>This is a hardcoded HTML PDF test.</p></body></html>"
    LoadFromHtml(htmlContent)
End Sub
Private Sub LoadFromHtml(htmlContent As String)
    Dim renderer As New ChromePdfRenderer()
    currentPdf = renderer.RenderHtmlAsPdf(htmlContent)
    LoadPdfBitmaps()
End Sub
Private Sub LoadHtmlButton_Click(sender As Object, e As EventArgs) Handles LoadHtmlButton.Click
    Dim htmlContent As String = "<html><body><h1>Hello PDF!</h1><p>This is a hardcoded HTML PDF test.</p></body></html>"
    LoadFromHtml(htmlContent)
End Sub

Private Sub LoadFromHtml(htmlContent As String)
    Dim renderer As New ChromePdfRenderer()
    currentPdf = renderer.RenderHtmlAsPdf(htmlContent)
    LoadPdfBitmaps()
End Sub
$vbLabelText   $csharpLabel

Este exemplo converte conteúdo HTML em PDF usando o método RenderHtmlAsPdf. Esse processo é ideal para relatórios ou modelos dinâmicos.

Saída

Como criar um visualizador de PDF em VB .NET com IronPDF: Um tutorial completo: Figura 4 - HTML para PDF exibido no visualizador de PDF

Esses métodos permitem a geração e visualização dinâmica de PDFs sem arquivos temporários, melhorando o desempenho e a segurança.

Como adicionar a funcionalidade de zoom?

Os controles de zoom melhoram a legibilidade de documentos detalhados. Implemente o zoom usando o dimensionamento da imagem:

Private Sub ZoomInButton_Click(sender As Object, e As EventArgs) Handles ZoomInButton.Click
        zoomLevel = Math.Min(zoomLevel + 0.25, 3.0)
        DisplayCurrentPage()
    End Sub
    Private Sub ZoomOutButton_Click(sender As Object, e As EventArgs) Handles ZoomOutButton.Click
        zoomLevel = Math.Max(zoomLevel - 0.25, 0.5)
        DisplayCurrentPage()
    End Sub
    Private Sub ApplyZoom()
        If pdfBitmaps IsNot Nothing AndAlso currentPage < pdfBitmaps.Length Then
            Dim pageImage As Bitmap = pdfBitmaps(currentPage)
            Dim newWidth As Integer = CInt(pageImage.Width * zoomLevel)
            Dim newHeight As Integer = CInt(pageImage.Height * zoomLevel)
            Dim zoomedImage As New Bitmap(pageImage, newWidth, newHeight)
            PictureBox1.Image = zoomedImage
        Else
            PictureBox1.Image = Nothing
        End If
    End Sub
Private Sub ZoomInButton_Click(sender As Object, e As EventArgs) Handles ZoomInButton.Click
        zoomLevel = Math.Min(zoomLevel + 0.25, 3.0)
        DisplayCurrentPage()
    End Sub
    Private Sub ZoomOutButton_Click(sender As Object, e As EventArgs) Handles ZoomOutButton.Click
        zoomLevel = Math.Max(zoomLevel - 0.25, 0.5)
        DisplayCurrentPage()
    End Sub
    Private Sub ApplyZoom()
        If pdfBitmaps IsNot Nothing AndAlso currentPage < pdfBitmaps.Length Then
            Dim pageImage As Bitmap = pdfBitmaps(currentPage)
            Dim newWidth As Integer = CInt(pageImage.Width * zoomLevel)
            Dim newHeight As Integer = CInt(pageImage.Height * zoomLevel)
            Dim zoomedImage As New Bitmap(pageImage, newWidth, newHeight)
            PictureBox1.Image = zoomedImage
        Else
            PictureBox1.Image = Nothing
        End If
    End Sub
Private Sub ZoomInButton_Click(sender As Object, e As EventArgs) Handles ZoomInButton.Click
    zoomLevel = Math.Min(zoomLevel + 0.25, 3.0)
    DisplayCurrentPage()
End Sub

Private Sub ZoomOutButton_Click(sender As Object, e As EventArgs) Handles ZoomOutButton.Click
    zoomLevel = Math.Max(zoomLevel - 0.25, 0.5)
    DisplayCurrentPage()
End Sub

Private Sub ApplyZoom()
    If pdfBitmaps IsNot Nothing AndAlso currentPage < pdfBitmaps.Length Then
        Dim pageImage As Bitmap = pdfBitmaps(currentPage)
        Dim newWidth As Integer = CInt(pageImage.Width * zoomLevel)
        Dim newHeight As Integer = CInt(pageImage.Height * zoomLevel)
        Dim zoomedImage As New Bitmap(pageImage, newWidth, newHeight)
        PictureBox1.Image = zoomedImage
    Else
        PictureBox1.Image = Nothing
    End If
End Sub
$vbLabelText   $csharpLabel

Este código ajusta o nível de zoom em etapas e chama a função DisplayCurrentPage() para aplicar o zoom e melhorar a legibilidade na área de trabalho.

Como imprimir documentos em PDF?

A funcionalidade de impressão completa a experiência do usuário. O IronPDF simplifica a impressão com métodos integrados:

Private Sub PrintButton_Click(sender As Object, e As EventArgs) Handles PrintButton.Click
        If currentPdf IsNot Nothing Then
            ' Simple print with default settings
            currentPdf.Print()
            ' Or with custom settings
            Dim printDoc As PrintDocument = currentPdf.GetPrintDocument()
            Using printDialog As New PrintDialog()
                printDialog.Document = printDoc
                If printDialog.ShowDialog() = DialogResult.OK Then
                    printDoc.Print()
                End If
            End Using
        End If
    End Sub
Private Sub PrintButton_Click(sender As Object, e As EventArgs) Handles PrintButton.Click
        If currentPdf IsNot Nothing Then
            ' Simple print with default settings
            currentPdf.Print()
            ' Or with custom settings
            Dim printDoc As PrintDocument = currentPdf.GetPrintDocument()
            Using printDialog As New PrintDialog()
                printDialog.Document = printDoc
                If printDialog.ShowDialog() = DialogResult.OK Then
                    printDoc.Print()
                End If
            End Using
        End If
    End Sub
Private Sub PrintButton_Click(sender As Object, e As EventArgs) Handles PrintButton.Click
    If currentPdf IsNot Nothing Then
        ' Simple print with default settings
        currentPdf.Print()
        ' Or with custom settings
        Dim printDoc As PrintDocument = currentPdf.GetPrintDocument()
        Using printDialog As New PrintDialog()
            printDialog.Document = printDoc
            If printDialog.ShowDialog() = DialogResult.OK Then
                printDoc.Print()
            End If
        End Using
    End If
End Sub
$vbLabelText   $csharpLabel

Esta conta privada permite que os usuários imprimam o documento PDF com configurações de impressora padrão ou personalizadas. GetPrintDocument() retorna um objeto PrintDocument para integração com o PrintDialog do Windows Forms.

Como implementar a visualização de PDFs em aplicações WPF?

Embora o Windows Forms domine o desenvolvimento para desktop, os aplicativos WPF também podem aproveitar o IronPDF. A abordagem difere ligeiramente:

' In WPF Window code-behind
Private Sub LoadPdfInWpf(filePath As String)
    Dim pdfDoc As PdfDocument = PdfDocument.FromFile(filePath)
    Dim pageImage As Bitmap = pdfDoc.ToBitmap(0)
    ' Convert to WPF-compatible image
    Dim bitmapImage As New BitmapImage()
    Using memory As New MemoryStream()
        pageImage.Save(memory, ImageFormat.Png)
        memory.Position = 0
        bitmapImage.BeginInit()
        bitmapImage.StreamSource = memory
        bitmapImage.CacheOption = BitmapCacheOption.OnLoad
        bitmapImage.EndInit()
    End Using
    ImageControl.Source = bitmapImage
End Sub
' In WPF Window code-behind
Private Sub LoadPdfInWpf(filePath As String)
    Dim pdfDoc As PdfDocument = PdfDocument.FromFile(filePath)
    Dim pageImage As Bitmap = pdfDoc.ToBitmap(0)
    ' Convert to WPF-compatible image
    Dim bitmapImage As New BitmapImage()
    Using memory As New MemoryStream()
        pageImage.Save(memory, ImageFormat.Png)
        memory.Position = 0
        bitmapImage.BeginInit()
        bitmapImage.StreamSource = memory
        bitmapImage.CacheOption = BitmapCacheOption.OnLoad
        bitmapImage.EndInit()
    End Using
    ImageControl.Source = bitmapImage
End Sub
Imports System.IO
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Windows.Media.Imaging

' In WPF Window code-behind
Private Sub LoadPdfInWpf(filePath As String)
    Dim pdfDoc As PdfDocument = PdfDocument.FromFile(filePath)
    Dim pageImage As Bitmap = pdfDoc.ToBitmap(0)
    ' Convert to WPF-compatible image
    Dim bitmapImage As New BitmapImage()
    Using memory As New MemoryStream()
        pageImage.Save(memory, ImageFormat.Png)
        memory.Position = 0
        bitmapImage.BeginInit()
        bitmapImage.StreamSource = memory
        bitmapImage.CacheOption = BitmapCacheOption.OnLoad
        bitmapImage.EndInit()
    End Using
    ImageControl.Source = bitmapImage
End Sub
$vbLabelText   $csharpLabel

Quais são as melhores práticas para otimizar o desempenho de um visualizador de PDF?

Otimizar a visualização de PDFs garante uma experiência de usuário tranquila:

Gerenciamento de memória

Exclua sempre os documentos PDF após o uso:

Protected Overrides Sub OnFormClosed(e As FormClosedEventArgs)
    If currentPdf IsNot Nothing Then
        currentPdf.Dispose()
    End If
    MyBase.OnFormClosed(e)
End Sub
Protected Overrides Sub OnFormClosed(e As FormClosedEventArgs)
    If currentPdf IsNot Nothing Then
        currentPdf.Dispose()
    End If
    MyBase.OnFormClosed(e)
End Sub
Protected Overrides Sub OnFormClosed(e As FormClosedEventArgs)
    If currentPdf IsNot Nothing Then
        currentPdf.Dispose()
    End If
    MyBase.OnFormClosed(e)
End Sub
$vbLabelText   $csharpLabel

Carregamento assíncrono

O IronPDF também suporta carregamento assíncrono, útil para carregar PDFs grandes sem congelar a interface do usuário:

Private Async Sub LoadPdfAsync(filePath As String)
    LoadingLabel.Visible = True
    Await Task.Run(Sub()
        currentPdf = PdfDocument.FromFile(filePath)
    End Sub)
    LoadingLabel.Visible = False
    DisplayCurrentPage()
End Sub
Private Async Sub LoadPdfAsync(filePath As String)
    LoadingLabel.Visible = True
    Await Task.Run(Sub()
        currentPdf = PdfDocument.FromFile(filePath)
    End Sub)
    LoadingLabel.Visible = False
    DisplayCurrentPage()
End Sub
Private Async Sub LoadPdfAsync(filePath As String)
    LoadingLabel.Visible = True
    Await Task.Run(Sub()
                       currentPdf = PdfDocument.FromFile(filePath)
                   End Sub)
    LoadingLabel.Visible = False
    DisplayCurrentPage()
End Sub
$vbLabelText   $csharpLabel

Conclusão

Criar um visualizador de PDF em VB .NET com IronPDF elimina a complexidade das abordagens tradicionais, ao mesmo tempo que oferece recursos profissionais. Desde a visualização básica de arquivos até o processamento e impressão avançados de formulários PDF, o IronPDF lida com todos os aspectos da interação com PDFs em seus aplicativos Windows Forms.

Seja para exibir relatórios, processar formulários ou implementar sistemas de gerenciamento de documentos, o IronPDF oferece as ferramentas, o suporte e as opções de licenciamento necessárias para soluções completas em PDF.

Comece seu projeto de visualizador de PDF em VB .NET com a avaliação gratuita do IronPDF para explorar todos os recursos. Expanda para implantações em produção com licenciamento flexível. Para obter documentação detalhada da API e exemplos adicionais, visite a documentação do IronPDF e explore os exemplos de código VB .NET abrangentes.

NuGet Instalar com NuGet

PM >  Install-Package IronPdf

Confira o IronPDF no NuGet para uma instalação rápida. Com mais de 10 milhões de downloads, ele está transformando o desenvolvimento de PDFs com C#. Você também pode baixar o arquivo DLL ou o instalador para Windows .

Perguntas frequentes

Como posso criar um visualizador de PDF em VB.NET?

Você pode criar um visualizador de PDF em VB.NET usando o IronPDF. Ele permite abrir, visualizar, ampliar, navegar, imprimir e salvar páginas de PDF facilmente em seus aplicativos .NET.

Quais são os desafios que os desenvolvedores enfrentam ao exibir PDFs em VB.NET?

Os desenvolvedores frequentemente enfrentam desafios porque o .NET Framework e o .NET Core não fornecem métodos integrados para visualizar arquivos PDF, o que leva muitos a depender de controles ActiveX desatualizados ou ferramentas complexas de terceiros.

O IronPDF pode ser usado tanto com o .NET Framework quanto com o .NET Core?

Sim, o IronPDF é compatível tanto com o .NET Framework quanto com o .NET Core, o que o torna uma opção versátil para o desenvolvimento de aplicativos de visualização de PDF em VB.NET.

Quais recursos o IronPDF oferece para visualização de PDFs?

O IronPDF oferece recursos como abrir, visualizar, ampliar, navegar, imprimir e salvar páginas PDF, aprimorando a experiência do usuário ao interagir com documentos PDF em aplicativos VB.NET.

Por que devo evitar o uso de controles ActiveX para visualização de PDFs em VB.NET?

Os controles ActiveX costumam estar desatualizados e podem levar a implementações complexas. O uso de bibliotecas modernas como o IronPDF oferece uma solução mais simplificada e confiável para visualização de PDFs em VB.NET.

É possível imprimir documentos PDF usando o IronPDF em VB.NET?

Sim, o IronPDF permite imprimir documentos PDF diretamente do seu aplicativo VB.NET, proporcionando uma experiência perfeita para usuários que precisam de cópias impressas de seus documentos.

Como o IronPDF melhora a experiência de visualização de PDFs para os usuários?

O IronPDF aprimora a experiência de visualização de PDFs, oferecendo recursos fáceis de usar para interagir com PDFs, como navegação fluida, recursos de zoom e a capacidade de salvar e imprimir documentos sem esforço.

O IronPDF é compatível com o .NET 10 para aplicativos visualizadores de PDF em VB.NET?

Sim — o IronPDF é totalmente compatível com o .NET 10. Ele suporta projetos VB.NET executados no .NET 10, além de versões anteriores como .NET 9, .NET 8, .NET Core, .NET Standard e .NET Framework 4.6.2+. Isso garante que você possa criar aplicativos visualizadores de PDF em VB.NET usando a plataforma mais recente.

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

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim