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:
- Otwórz nowy projekt w Visual Studio, korzystając z wybranego frameworka lub .NET Core.
- Kliknij prawym przyciskiem myszy swój projekt w Eksploratorze rozwiązań
- Wybierz "Zarządzaj pakietami NuGet"
- Wyszukaj "IronPDF" w zakładce Przeglądaj
- Kliknij przycisk "Zainstaluj" przy pakiecie IronPDF
Po instalacji dodaj tę instrukcję importu do swoich plików VB.NET:
Imports IronPdf
Imports IronPdf
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
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
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
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
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
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

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

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




