使用IRONPDF 如何使用IronPDF創建VB.NET PDF查看器:完整教程 Curtis Chau 更新:2025年9月29日 下載 IronPDF NuGet 下載 DLL 下載 Windows Installer 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 對於許多開發人員來說,直接在 VB .NET應用程式中顯示 PDF 文件仍然可能很棘手。 .NET Framework和.NET Core沒有提供檢視 PDF 檔案的內建方法,因此人們通常依賴舊的 ActiveX 控製或混亂的第三方工具。 這可能會讓開發者和使用者都感到沮喪。 如果您正在建立 Windows Forms 或 WPF 應用程序,您需要一個可靠的 PDF 檢視器。 無論是發票、報告,甚至是轉換為 PDF 格式的 Word 文檔, IronPDF都簡化了這一過程,無需外部組件,並提供強大的選項,可以直接在專案中建立、編輯和處理 PDF。 在本教程中,我將一步一步地引導您建立一個.NET PDF檢視器。 到最後,你將像專家一樣掌握如何在你的應用程式中產生和顯示 PDF 文件。 此外,您還會發現添加縮放、導航和列印等功能是多麼容易。 我最近在一個內部專案中嘗試了這種方法,它大大加快了我們團隊的報告審核流程。 在.NET檢視PDF檔案有哪些挑戰? Visual Studio 工具箱缺少標準的 PDF 檢視器控制項。 開發人員通常會依賴 Internet Explorer 或嵌入式 WebBrowser 控制項來顯示 PDF 文件,但這些方法依賴使用者的預設 PDF 閱讀器,並且可能會引入部署方面的隱性成本。 傳統解決方案可能還需要安裝外部軟體或手動配置才能正確處理、列印或渲染 PDF 表單,這增加了複雜性,並限制了在多個 Windows 環境中自訂 PDF 顯示的能力。 IronPDF如何簡化.NET的 PDF 檢視? IronPDF透過提供一個無需 Adobe Reader 或其他外部檢視器的獨立函式庫,改變了 VB .NET應用程式中的 PDF 處理方式。 除了基本的檢視功能外,它還允許開發人員使用熟悉的.NET模式以程式設計方式建立、編輯、操作和渲染 PDF。 該庫的架構利用了基於 Chrome 的渲染引擎,確保以像素級精度顯示複雜的 PDF 文件,並完全支援表單、註釋和嵌入式多媒體等現代功能。 這種方法可以確保在所有 Windows 環境下呈現一致的渲染效果。 主要能力包括 無需下載或依賴瀏覽器即可直接渲染 PDF 文件 將 Word 文件或 HTML 轉換為 PDF 格式 編輯、分割和合併 PDF 頁面 填寫並提取 PDF 表單 內建列印支持,並可自訂設置 支援模板、圖像和多頁 PDF 文件 這些特性使IronPDF成為.NET應用程式高度可自訂的解決方案,使開發人員能夠在桌面或 Web 應用程式環境中處理複雜的 PDF 文件。 如何在.NET專案中安裝IronPDF ? 透過NuGet套件管理器,只需幾個步驟即可完成IronPDF 的安裝。 在 Visual Studio 中開啟您的 VB .NET Windows Forms 項目,然後依照下列步驟操作: 在 Visual Studio 中開啟你的新項目,選擇你的目標框架或.NET Core。 在解決方案資源管理器中以滑鼠右鍵按一下您的專案。 選擇"管理NuGet程式包" 在"瀏覽"標籤中搜尋"IronPDF" 點選IronPDF軟體包上的"安裝"按鈕 安裝完成後,將以下導入語句加入您的 VB .NET檔案: Imports IronPdf Imports IronPdf $vbLabelText $csharpLabel 此導入語句使您的 VB .NET專案能夠存取所有IronPDF類別和方法,從而允許您以程式設計方式載入、渲染、列印和操作 PDF 文件。 此配置包含所有必要的運行時組件,無需手動配置,避免了隱性成本。 如何在 Windows Forms 中建立一個基本的 PDF 檢視器? 建立 PDF 檢視器首先要建立一個 Windows Forms 應用程序,並實作 IronPDF 的渲染功能。 以下是在應用程式中顯示 PDF 的簡化方法: 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 $vbLabelText $csharpLabel 代碼解釋: currentPdf 儲存已載入的 PDF 文件。 pdfBitmaps 儲存每個 PDF 頁面的點陣圖影像,以便在 PictureBox 控制項中顯示。 LoadPdfButton_Click 使用標準的 OpenFileDialog 讓使用者選擇 PDF 檔案。 PdfDocument.FromFile 載入 PDF 文檔,RasterizeToImageFiles 將每一頁轉換為圖片檔案。 每個檔案都以 Bitmap 的形式讀入內存,添加到數組中,並使用 DisplayCurrentPage() 顯示第一頁。 運行程式後,點擊"載入 PDF"按鈕,即可透過彈出的對話方塊載入 PDF 檔案。 如何實作PDF導航控件? 導航功能允許使用者在多頁文件之間移動,從而提升使用者體驗。 透過以下方式為表單新增"上一頁"和"下一頁"按鈕: ' 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 這些私有子程式使用物件傳送器、事件參數等處理 PDF 頁面的導覽。 按鈕更新 currentPage 並呼叫 DisplayCurrentPage() 在 Windows 窗體中呈現 PDF 頁面。 ' 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 這樣可以更新按鈕狀態,使用戶無法導覽到第一頁或最後一頁之外,同時標籤會顯示目前頁碼和總頁數。 輸出 如何從不同來源載入PDF文件? IronPDF支援從本地文件以外的各種來源載入 PDF 文件。 這種靈活性使得它可以與資料庫、Web服務和記憶體流整合: 從 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 $vbLabelText $csharpLabel 此私有子程式檢查 URL 輸入,如果無效則顯示警報,並呼叫 LoadFromUrl 動態渲染 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 $vbLabelText $csharpLabel 它使用 ChromePdfRenderer 將網頁 URL 轉換為 PDF 文件。 啟用此選項後, JavaScript執行和列印友善的 CSS 將以點陣圖形式載入 PDF 頁面。 輸出 從 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 $vbLabelText $csharpLabel 本範例使用 RenderHtmlAsPdf 方法將HTML 內容轉換為 PDF。 此流程非常適合用於動態報表或範本。 輸出 這些方法無需臨時檔案即可動態生成和查看 PDF,從而提高了效能和安全性。 如何新增縮放功能? 縮放功能可以提高詳細文件的可讀性。 使用圖像縮放實現縮放: 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 這段程式碼逐步調整縮放級別,並呼叫 DisplayCurrentPage() 函數應用縮放比例,以提高桌面端的可讀性。 如何列印PDF文件? 列印功能完善了使用者的瀏覽體驗。 IronPDF透過內建方法簡化了列印流程: 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 此私有訂閱允許使用者使用預設或自訂印表機設定列印 PDF 文件。 GetPrintDocument() 傳回 PrintDocument 對象,用於與 Windows Forms PrintDialog 整合。 如何在WPF應用程式中實現PDF檢視功能? 雖然 Windows Forms 在桌面開發領域佔據主導地位,但 WPF 應用程式也可以利用IronPDF。 方法略有不同: ' 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 $vbLabelText $csharpLabel 如何優化 PDF 檢視器的效能? 優化 PDF 查看體驗可確保流暢的使用者體驗: 記憶體管理 使用完畢後請務必刪除PDF文件: 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 非同步載入 IronPDF也支援非同步加載,這對於加載大型 PDF 檔案而不會導致使用者介面凍結非常有用: 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 結論 使用IronPDF在.NET中建立 PDF 檢視器,既消除了傳統方法的複雜性,又提供了專業的功能。 從基本的文件檢視到進階的 PDF 表單處理和列印, IronPDF可以處理 Windows Forms 應用程式中 PDF 互動的各個方面。 無論是顯示報告、處理表單或實施文件管理系統, IronPDF都能提供全面的 PDF 解決方案所需的工具、支援和許可選項。 使用IronPDF 的免費試用版開始您的 VB .NET PDF 檢視器項目,探索所有功能。 透過靈活的授權模式,可擴展至生產部署。 有關詳細的 API 文件和更多範例,請造訪IronPDF文件並瀏覽全面的 VB .NET程式碼範例。 立即開始在您的項目中使用 IronPDF 並免費試用。 第一步: 免費啟動 常見問題解答 如何在 VB.NET 中創建一個 PDF 查看器? 您可以使用 IronPDF 在 VB.NET 中創建一個 PDF 查看器。它允許您輕鬆地在 .NET 應用程式中打開、查看、縮放、導覽、列印和儲存 PDF 頁面。 當在 VB.NET 中顯示 PDF 時,開發者會面臨什麼挑戰? .NET Framework 和 .NET Core 未提供檢視 PDF 文件的內建方法,導致許多人依賴過時的 ActiveX 控件或複雜的第三方工具。 IronPDF 是否可以與 .NET Framework 和 .NET Core 一起使用? 是的,IronPDF 可兼容 .NET Framework 和 .NET Core,是在 VB.NET 中開發 PDF 檢視應用程式的多功能選擇。 IronPDF 為 PDF 檢視提供了哪些功能? IronPDF 提供了打開、查看、縮放、導覽、列印和儲存 PDF 頁面的功能,提升了用戶在 VB.NET 應用程式中與 PDF 文件互動的體驗。 為什麼應避免在 VB.NET 中使用 ActiveX 控件來檢視 PDF? ActiveX 控件往往過時,可能導致混亂的實施。使用像 IronPDF 這樣的現代庫為 VB.NET 中的 PDF 檢視提供了更簡化和可靠的解決方案。 是否可以使用 IronPDF 在 VB.NET 中列印 PDF 文件? 是的,IronPDF 允許您直接從 VB.NET 應用程式中列印 PDF 文件,為需要文檔硬拷貝的用戶提供無縫體驗。 IronPDF 如何改善用戶的 PDF 檢視體驗? IronPDF 通過提供易於使用的功能來改善 PDF 檢視體驗,例如流暢的導覽、縮放功能以及輕鬆地保存和列印文檔的能力。 IronPDF是否與.NET 10兼容,用於VB.NET PDF查看器應用程式? 是的,IronPDF與.NET 10完全兼容。它支援運行於.NET 10及較早版本如.NET 9、.NET 8、.NET Core、.NET Standard和.NET Framework 4.6.2+的VB.NET專案。這確保您可以使用最新平臺構建VB.NET PDF查看器應用程式。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 更新2026年3月1日 如何在.NET中使用IronPDF創建PDF檔案(C#教程) 發現用於創建C# PDF文件的有效方法,提升您的編碼技能並簡化您的項目。立即閱讀文章! 閱讀更多 更新2026年2月27日 如何在C#中合併PDF文件 使用 IronPDF 合併 PDF 文件。學習如何使用簡單的 VB.NET 程式碼將多個 PDF 文件合併成一個文檔。包含逐步範例。 閱讀更多 更新2026年3月1日 C# PDFWriter教程,適用於.NET 10開發者 通過這個面向開發人員的逐步指南,學習如何使用C# PDFWriter高效創建PDF。閱讀本文以提高您的技能! 閱讀更多 如何在ASP.NET Core中創建PDF查看器如何使用IronPDF創建Azure PDF...