Przejdź do treści stopki
KORZYSTANIE Z IRONPDF

Jak stworzyć przeglądarkę PDF VB.NET z IronPDF: Kompletny przewodnik

Wyświetlanie dokumentów PDF bezpośrednio w aplikacjach VB.NET może nadal stanowić wyzwanie dla wielu programistów. Platforma .NET Framework i .NET Core nie oferują wbudowanych funkcji do przeglądania plików PDF, więc użytkownicy często korzystają ze starych kontrolek ActiveX lub nieporęcznych narzędzi innych firm. Może to być frustrujące zarówno dla programistów, jak i użytkowników.

Jeśli tworzysz aplikację Windows Forms lub WPF, potrzebujesz niezawodnego rozwiązania do przeglądania plików PDF. Niezależnie od tego, czy chodzi o faktury, raporty, czy nawet dokumenty WORD przekonwertowane do formatu PDF, IronPDF upraszcza ten proces, eliminując potrzebę korzystania z zewnętrznych komponentów i zapewniając zaawansowane opcje tworzenia, edycji i przetwarzania plików PDF bezpośrednio w ramach projektu.

W tym samouczku przeprowadzę Cię krok po kroku przez proces tworzenia przeglądarki plików PDF w VB.NET. Po zakończeniu nauczysz się generować i wyświetlać dokumenty PDF w swojej aplikacji jak ekspert. Dodatkowo przekonasz się, jak łatwo jest dodać funkcje takie jak Zoom, nawigacja i drukowanie. Wypróbowałem to podejście w niedawnym projekcie wewnętrznym i znacznie przyspieszyło ono proces przeglądu raportów w naszym zespole.

Co sprawia, że przeglądanie plików PDF w VB.NET jest trudne?

W zestawie narzędzi Visual Studio brakuje standardowej kontrolki do przeglądania plików PDF. Programiści często polegają na przeglądarce Internet Explorer lub wbudowanych kontrolkach WebBrowser do wyświetlania plików PDF, ale te rozwiązania zależą od domyślnej przeglądarki PDF użytkownika i mogą wiązać się z ukrytymi kosztami wdrożenia.

Tradycyjne rozwiązania mogą również wymagać instalacji zewnętrznego oprogramowania lub ręcznej konfiguracji w celu prawidłowej obsługi formularzy PDF, drukowania lub renderowania, co zwiększa złożoność i ogranicza możliwość dostosowania wyświetlania plików PDF w wielu środowiskach Windows.

W jaki sposób IronPDF ułatwia przeglądanie plików PDF w VB.NET?

IronPDF zmienia sposób obsługi plików PDF w aplikacjach VB.NET, udostępniając samodzielną bibliotekę, która nie wymaga programu Adobe Reader ani innych zewnętrznych przeglądarek. Oprócz podstawowego przeglądania umożliwia programistom tworzenie, edytowanie, modyfikowanie i renderowanie plików PDF programowo przy użyciu znanych wzorców .NET.

Architektura biblioteki wykorzystuje silnik renderujący oparty na przeglądarce Chrome, zapewniając idealne wyświetlanie złożonych plików PDF z pełną obsługą nowoczesnych funkcji, takich jak formularze, adnotacje i osadzone multimedia. Takie podejście gwarantuje spójne działanie we wszystkich środowiskach Windows.

Kluczowe możliwości obejmują

  • Bezpośrednie renderowanie plików PDF bez konieczności pobierania lub zależności od przeglądarki
  • Konwersja dokumentów WORD lub HTML do formatu PDF
  • Edycja, dzielenie i łączenie stron PDF
  • Wypełnianie i pobieranie formularzy PDF
  • Wbudowana obsługa drukowania z możliwością dostosowania ustawień
  • Obsługa szablonów, obrazów i wielostronicowych plików PDF

Cechy te sprawiają, że IronPDF jest wysoce konfigurowalnym rozwiązaniem dla aplikacji .NET, umożliwiającym programistom obsługę złożonych dokumentów PDF w środowisku aplikacji desktopowych lub internetowych.

Jak zainstalować IronPDF w projekcie VB.NET?

Konfiguracja IronPDF wymaga zaledwie kilku kroków za pomocą menedżera pakietów NuGet. Otwórz projekt VB.NET Windows Forms w programie Visual Studio i wykonaj następujące czynności:

  1. Otwórz nowy projekt w Visual Studio, korzystając z wybranego frameworka lub .NET Core.
  2. Kliknij prawym przyciskiem myszy swój projekt w Eksploratorze rozwiązań
  3. Wybierz "Zarządzaj pakietami NuGet"
  4. Wyszukaj "IronPDF" w zakładce Przeglądaj
  5. Kliknij przycisk "Zainstaluj" przy pakiecie IronPDF

Po instalacji dodaj tę instrukcję importu do swoich plików VB.NET:

Imports IronPdf
Imports IronPdf
$vbLabelText   $csharpLabel

Ta instrukcja importu zapewnia projektowi VB.NET dostęp do wszystkich klas i metod IronPDF, umożliwiając programowe ładowanie, renderowanie, drukowanie i manipulowanie dokumentami PDF.

Ta konfiguracja zawiera wszystkie niezbędne komponenty środowiska uruchomieniowego, co eliminuje konieczność ręcznej konfiguracji i pozwala uniknąć ukrytych kosztów.

Jak stworzyć podstawową przeglądarkę plików PDF w Windows Forms?

Tworzenie przeglądarki plików PDF zaczyna się od stworzenia aplikacji Windows Forms i wdrożenia funkcji renderowania IronPDF. Oto uproszczone podejście do wyświetlania plików PDF w aplikacji:

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

Objaśnienie kodu:

  • currentPdf przechowuje załadowany dokument PDF.
  • pdfBitmaps przechowuje obrazy bitmapowe dla każdej strony PDF, dzięki czemu można je wyświetlać w kontrolce PictureBox.
  • LoadPdfButton_Click wykorzystuje standardowy dialog OpenFileDialog, aby umożliwić użytkownikom wybór pliku PDF.
  • PdfDocument.FromFile ładuje dokument PDF, a RasterizeToImageFiles konwertuje każdą stronę na pliki graficzne.
  • Każdy plik jest wczytywany do pamięci jako obraz bitmapowy, dodawany do tablicy, a pierwsza strona jest wyświetlana za pomocą funkcji DisplayCurrentPage().

Po uruchomieniu programu będziemy mogli załadować plik PDF za pomocą okna dialogowego, które pojawi się po kliknięciu przycisku "Load PDF".

Jak wdrożyć elementy sterujące nawigacją w plikach PDF?

Nawigacja poprawia komfort użytkowania, umożliwiając poruszanie się po dokumentach wielostronicowych. Dodaj przyciski Poprzedni i Następny do formularza za pomocą poniższego kodu:

' 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

Te procedury Private Sub obsługują nawigację po stronach PDF przy użyciu Object sender, EventArgs e. Przyciski aktualizują currentPage i wywołują DisplayCurrentPage(), aby wyrenderować stronę PDF w oknie Windows Form.

' 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

Spowoduje to aktualizację stanów przycisków, dzięki czemu użytkownicy nie będą mogli przejść poza pierwszą lub ostatnią stronę, a etykieta będzie wyświetlać numer bieżącej strony oraz całkowitą liczbę stron.

Wynik

Jak wczytywać pliki PDF z różnych źródeł?

IronPDF obsługuje ładowanie plików PDF z różnych źródeł, nie tylko z plików lokalnych. Ta elastyczność umożliwia integrację z bazami danych, usługami internetowymi i strumieniami pamięci:

Ładowanie z adresu 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

Ta procedura Private Sub sprawdza wprowadzony adres URL, wyświetla ostrzeżenie, jeśli jest on nieprawidłowy, i wywołuje metodę LoadFromUrl w celu dynamicznego renderowania pliku PDF.

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

Wykorzystuje ChromePdfRenderer do konwersji adresu URL strony internetowej na dokument PDF. Opcje umożliwiają wykonywanie kodu JavaScript i stosowanie CSS dostosowanego do drukowania, a następnie strony PDF są ładowane jako mapy bitowe.

Wynik

Jak stworzyć przeglądarkę plików PDF w VB.NET za pomocą IronPDF: Kompletny samouczek: Rysunek 3 – Adres URL do pliku PDF wyświetlony w przeglądarce plików PDF

Ładowanie z treści 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

W tym przykładzie treść HTML jest konwertowana do formatu PDF przy użyciu metody RenderHtmlAsPdf. Proces ten idealnie nadaje się do dynamicznych raportów lub szablonów.

Wynik

Jak stworzyć przeglądarkę plików PDF w VB.NET za pomocą IronPDF: Kompletny samouczek: Rysunek 4 – Plik HTML przekonwertowany do formatu PDF wyświetlony w przeglądarce plików PDF

Metody te umożliwiają dynamiczne generowanie i przeglądanie plików PDF bez plików tymczasowych, poprawiając wydajność i bezpieczeństwo.

Jak dodać funkcję Zoom?

Elementy sterujące Zoom poprawiają czytelność szczegółowych dokumentów. Wprowadź funkcję Zoom za pomocą skalowania obrazu:

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

Ten kod dostosowuje poziom powiększenia (zoomLevel) w krokach i wywołuje funkcję DisplayCurrentPage(), aby zastosować skalowanie powiększenia w celu poprawy czytelności na komputerze stacjonarnym

Jak drukować dokumenty PDF?

Funkcja drukowania dopełnia wrażenia użytkownika. IronPDF upraszcza drukowanie dzięki wbudowanym metodom:

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

Ta procedura Private Sub umożliwia użytkownikom drukowanie dokumentu PDF przy użyciu domyślnych lub niestandardowych ustawień drukarki. Metoda GetPrintDocument() zwraca obiekt PrintDocument do integracji z oknem dialogowym drukowania Windows Forms.

Jak zaimplementować przeglądanie plików PDF w aplikacjach WPF?

Chociaż Windows Forms dominuje w tworzeniu aplikacji desktopowych, aplikacje WPF również mogą korzystać z IronPDF. Podejście jest nieco inne:

' 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

Jakie są najlepsze praktyki dotyczące wydajności przeglądarek PDF?

Optymalizacja wyświetlania plików PDF zapewnia płynne działanie:

Zarządzanie pamięcią

Zawsze usuwaj dokumenty PDF po zakończeniu pracy:

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

Ładowanie asynchroniczne

IronPDF dodatkowo obsługuje ładowanie asynchroniczne, przydatne do ładowania dużych plików PDF bez zawieszania interfejsu użytkownika:

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

Wnioski

Stworzenie przeglądarki plików PDF w VB.NET przy użyciu IronPDF eliminuje złożoność tradycyjnych metod, zapewniając jednocześnie profesjonalne funkcje. Od podstawowego przeglądania plików po zaawansowane przetwarzanie formularzy PDF i drukowanie — IronPDF obsługuje wszystkie aspekty interakcji z plikami PDF w aplikacjach Windows Forms.

Niezależnie od tego, czy chodzi o wyświetlanie raportów, przetwarzanie formularzy czy wdrażanie systemów zarządzania dokumentami, IronPDF zapewnia narzędzia, wsparcie i opcje licencyjne niezbędne do kompleksowych rozwiązań PDF.

Rozpocznij swój projekt przeglądarki plików PDF dla VB.NET, korzystając z bezpłatnej wersji próbnej IronPDF, aby poznać wszystkie funkcje. Skaluj wdrożenia produkcyjne dzięki elastycznym licencjom. Aby uzyskać szczegółową dokumentację API i dodatkowe przykłady, odwiedź dokumentację IronPDF i zapoznaj się z obszernymi przykładami kodu VB.NET.

NuGet Zainstaluj za pomocą NuGet

PM >  Install-Package IronPdf

Sprawdź IronPDF na NuGet dla szybkiej instalacji. Z ponad 10 milionami pobrań, przekształca rozwój PDF z C#. Możesz również pobrać DLL lub instalator Windows.

Często Zadawane Pytania

Jak moge stworzyc przegladarke PDF w VB.NET?

Możesz stworzyć przeglądarkę PDF w VB.NET używając IronPDF. Pozwala to na latwe otwieranie, przeglądanie, powiększanie, nawigację, drukowanie i zapisywanie stron PDF w aplikacjach .NET.

Z jakimi wyzwaniami stykają się deweloperzy przy wyświetlaniu PDF w VB.NET?

Deweloperzy często napotykają wyzwania, ponieważ .NET Framework i .NET Core nie oferują wbudowanych metod do przeglądania plików PDF, co prowadzi wielu do polegania na przestarzałych kontrolkach ActiveX lub złożonych narzędziach zewnętrznych.

Czy IronPDF można używać z zarówno .NET Framework, jak i .NET Core?

Tak, IronPDF jest kompatybilny zarówno z .NET Framework, jak i .NET Core, co czyni go wszechstronnym wyborem do tworzenia aplikacji przeglądających PDF w VB.NET.

Jakie funkcje oferuje IronPDF do przeglądania PDF?

IronPDF oferuje funkcje takie jak otwieranie, przeglądanie, powiększanie, nawigacja, drukowanie i zapisywanie stron PDF, poprawiając doświadczenia użytkownika podczas interakcji z dokumentami PDF w aplikacjach VB.NET.

Dlaczego powinienem unikać używania kontrolek ActiveX do przeglądania PDF w VB.NET?

Kontrolki ActiveX często są przestarzałe i mogą prowadzić do chaotycznych implementacji. Użycie nowoczesnych bibliotek, takich jak IronPDF, zapewnia bardziej usprawnione i niezawodne rozwiązanie do przeglądania PDF w VB.NET.

Czy możliwe jest drukowanie dokumentów PDF używając IronPDF w VB.NET?

Tak, IronPDF pozwala na drukowanie dokumentów PDF bezpośrednio z twojej aplikacji VB.NET, zapewniając płynne doświadczenie dla użytkowników potrzebujących kopii swoich dokumentów.

Jak IronPDF poprawia doświadczenie przeglądania PDF dla użytkowników?

IronPDF poprawia doświadczenie przeglądania PDF, oferując łatwe w użyciu funkcje do interakcji z PDF, takie jak płynna nawigacja, możliwości powiększenia oraz możliwość bezproblemowego zapisywania i drukowania dokumentów.

Czy IronPDF jest kompatybilny z .NET 10 do aplikacji przeglądarki PDF dla VB.NET?

Tak — IronPDF jest w pełni kompatybilny z .NET 10. Obsługuje projekty VB.NET działające na .NET 10, a także wcześniejsze wersje, takie jak .NET 9, .NET 8, .NET Core, .NET Standard i .NET Framework 4.6.2+. Dzięki temu możesz budować aplikacje przeglądarki PDF dla VB.NET korzystając z najnowszego środowiska.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie