跳過到頁腳內容
使用IRONPDF

VB .NET 在 PictureBox 中顯示 PDF:在 Windows 窗体中将 PDF 页面渲染为图像

在 PictureBox 控制項中顯示 PDF 文件

由於PictureBox僅支援 BMP、PNG、TIF 和 JPG 等影像格式,因此無法直接在PictureBox控制項中顯示 PDF 檔案。 解決方案是將 PDF 頁面渲染為點陣圖影像,然後在 Windows 窗體應用程式中顯示它們。

在本教學中,我們將向您展示如何使用 IronPDF 強大的柵格化功能轉換和顯示 PDF 文件。 如果您需要更多參考資料或有未涵蓋的問題的答案,請注意,您通常可以在 IronPDF 官方參考文件中找到更多資訊。

!{--01001100010010010100001001010010010000010101001001011001010111110100011101000101010101 01000101111101010011010101000100000101010010010101000100010101000100010111110101011101001000110 1010101000100100001011111010100000101001001001111010001000101010101010000110101010100101010101011 10101010001010010010010010010000010100110001011111010000100100110001001111101000011010010111111010000110100101110--

為什麼 PictureBox 不能直接顯示 PDF 檔?

Microsoft .NET Framework Windows Forms 應用程式中的PictureBox控制項僅設計用於顯示映像檔。 當開發者嘗試將 PDF 文件載入到PictureBox中時,會遇到錯誤,因為 PDF 格式需要特殊的渲染方式。 雖然有些解決方案涉及透過 COM 元件使用 Adobe Reader 或 Adobe PDF Reader,但這種方法會造成對 Adobe Acrobat 等外部軟體的依賴。 解決程序局限性通常還有其他方法。

更簡潔的方法是使用 IronPDF 將每個 PDF 頁面渲染成點陣圖影像。 此方法適用於任何 .NET 應用程序,無需使用者在其桌面系統上下載或安裝 Adobe Acrobat。 該過程將 PDF 頁面轉換為PictureBox可以原生顯示的圖像格式,支援輸出為 PNG、TIF 和其他標準格式。

如何為 PDF 檢視器設定 Windows 窗體項目?

在 Visual Studio 中建立一個新的 Windows 窗體應用程式專案。 從工具箱為窗體新增PictureBox控件,以及用於瀏覽頁面的導覽按鈕。 透過 NuGet 套件管理器安裝 IronPDF,方法是搜尋"IronPdf"並點選安裝。

! VB .NET 在 PictureBox 中顯示 PDF:在 Windows 表單中將 PDF 頁面渲染為圖像:圖 1 - 安裝 IronPDF

該 SDK 提供了加載、渲染和將 PDF 文件轉換為圖像所需的所有方法。

以下程式碼範例展示了用於在 PictureBox 中顯示 PDF 的 VB NET 控制項的基本窗體設定:

Imports IronPDF
Imports System.Drawing

Public Class PdfViewerForm
    Private currentPdf As PdfDocument
    Private currentPageIndex As Integer = 0
    Private pageImages() As IronSoftware.Drawing.AnyBitmap

    Private Sub PdfViewerForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' Form initialization code
        PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
    End Sub
End Class
Imports IronPDF
Imports System.Drawing

Public Class PdfViewerForm
    Private currentPdf As PdfDocument
    Private currentPageIndex As Integer = 0
    Private pageImages() As IronSoftware.Drawing.AnyBitmap

    Private Sub PdfViewerForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' Form initialization code
        PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
    End Sub
End Class
VB .NET

空白表單 UI 範例

! VB .NET 在 PictureBox 中顯示 PDF:在 Windows 窗體中將 PDF 頁面渲染為圖像:圖 2 - 可供使用的空白 Windows 窗體範例

這段程式碼為 PDF 檢視器控制項奠定了基礎。 PdfDocument物件保存已載入的 PDF 文檔,而pageImages儲存每個 PDF 頁面的渲染位圖影像。 SizeMode屬性可在顯示頁面時啟用自動縮放功能。 這是整個專案至關重要的基礎。

如何在 PictureBox 中載入和顯示 PDF 頁面?

載入和顯示 PDF 文件需要將每個 PDF 頁面轉換為PictureBox可以渲染的點陣圖。 IronPDF 的ToBitmap方法可以有效率地處理這種轉換過程,支援各種影像格式和品質設定。

Private Sub LoadPdfDocument(filePath As String)
    ' Load the PDF document from file path
    currentPdf = PdfDocument.FromFile(filePath)
    ' Convert all PDF pages to bitmap images
    pageImages = currentPdf.ToBitmap()
    ' Display the first page
    If pageImages IsNot Nothing AndAlso pageImages.Length > 0 Then
        DisplayPage(0)
    End If
End Sub

Private Sub DisplayPage(pageIndex As Integer)
    If pageImages IsNot Nothing AndAlso pageIndex < pageImages.Length Then
        ' Create new Bitmap from the rendered page
        Dim newBitmap As New Bitmap(pageImages(pageIndex).GetStream())
        PictureBox1.Image = newBitmap
        currentPageIndex = pageIndex
        lblPageNumber.Text = $"Page {pageIndex + 1} of {pageImages.Length}"
    End If
End Sub

Private Sub btnOpen_Click(sender As Object, e As EventArgs) Handles btnOpen.Click
    Using openDialog As New OpenFileDialog()
        openDialog.Filter = "PDF Files|*.pdf"
        If openDialog.ShowDialog() = DialogResult.OK Then
            LoadPdfDocument(openDialog.FileName)
        End If
    End Using
End Sub
Private Sub LoadPdfDocument(filePath As String)
    ' Load the PDF document from file path
    currentPdf = PdfDocument.FromFile(filePath)
    ' Convert all PDF pages to bitmap images
    pageImages = currentPdf.ToBitmap()
    ' Display the first page
    If pageImages IsNot Nothing AndAlso pageImages.Length > 0 Then
        DisplayPage(0)
    End If
End Sub

Private Sub DisplayPage(pageIndex As Integer)
    If pageImages IsNot Nothing AndAlso pageIndex < pageImages.Length Then
        ' Create new Bitmap from the rendered page
        Dim newBitmap As New Bitmap(pageImages(pageIndex).GetStream())
        PictureBox1.Image = newBitmap
        currentPageIndex = pageIndex
        lblPageNumber.Text = $"Page {pageIndex + 1} of {pageImages.Length}"
    End If
End Sub

Private Sub btnOpen_Click(sender As Object, e As EventArgs) Handles btnOpen.Click
    Using openDialog As New OpenFileDialog()
        openDialog.Filter = "PDF Files|*.pdf"
        If openDialog.ShowDialog() = DialogResult.OK Then
            LoadPdfDocument(openDialog.FileName)
        End If
    End Using
End Sub
VB .NET

PDF 以表單形式顯示

! VB .NET 在 PictureBox 中顯示 PDF:在 Windows 窗體中將 PDF 頁面渲染為圖像:圖 3 - 範例輸入 PDF 在我們的檢視器中顯示

LoadPdfDocument方法使用PdfDocument.FromFile從指定路徑載入 PDF 文件,使用使用者選擇的檔案名稱。 ToBitmap方法隨後會將所有頁面一次轉換為點陣圖影像。 每個點陣圖都可以直接指派給PictureBox&#39;s Image屬性進行顯示。 這種方法透過將所有渲染後的頁面儲存在陣列中來處理多頁 PDF 文件。 您也可以透過在 Visual Studio 設計器中按一下對應的標籤來編輯窗體的外觀。

如何在PDF頁面之間導航?

實現頁面導航功能,使用者可以瀏覽 PDF 文件的所有頁面。 以下程式碼範例示範了上一頁和下一頁按鈕的功能:

Private Sub btnPrevious_Click(sender As Object, e As EventArgs) Handles btnPrevious.Click
    If currentPageIndex > 0 Then
        DisplayPage(currentPageIndex - 1)
    End If
End Sub

Private Sub btnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Click
    If pageImages IsNot Nothing AndAlso currentPageIndex < pageImages.Length - 1 Then
        DisplayPage(currentPageIndex + 1)
    End If
End Sub
Private Sub btnPrevious_Click(sender As Object, e As EventArgs) Handles btnPrevious.Click
    If currentPageIndex > 0 Then
        DisplayPage(currentPageIndex - 1)
    End If
End Sub

Private Sub btnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Click
    If pageImages IsNot Nothing AndAlso currentPageIndex < pageImages.Length - 1 Then
        DisplayPage(currentPageIndex + 1)
    End If
End Sub
VB .NET

輸出

! VB .NET 在 PictureBox 中顯示 PDF:在 Windows 表單中將 PDF 頁面渲染為圖像:圖 4 - 使用我們的按鈕導航到第 2 頁

這些事件處理程序會在導航之前檢查邊界,以防止出錯。 IsNot Nothing檢查可確保在嘗試導覽之前已載入 PDF 文件。 這種模式非常適合建立支援顯示多頁的完整 PDF 檢視器。

如何新增儲存和列印PDF文件的功能?

許多 Windows Forms 應用程式需要列印 PDF 文件或將渲染後的頁面儲存為圖像檔案。 IronPDF 透過其全面的 API 支援這兩種操作。 使用此功能不會損害系統安全,也不需要複雜的數學運算來計算列印邊距。

Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
    If currentPdf IsNot Nothing Then
        Dim printDialog As New PrintDialog()
        If printDialog.ShowDialog() = DialogResult.OK Then
            currentPdf.Print()
        End If
    End If
End Sub

Private Sub btnSaveImage_Click(sender As Object, e As EventArgs) Handles btnSave.Click
    If PictureBox1.Image IsNot Nothing Then
        Using saveDialog As New SaveFileDialog()
            saveDialog.Filter = "PNG Image|*.png|JPEG Image|*.jpg|TIF Image|*.tif"
            If saveDialog.ShowDialog() = DialogResult.OK Then
                PictureBox1.Image.Save(saveDialog.FileName)
            End If
        End Using
    End If
End Sub
Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
    If currentPdf IsNot Nothing Then
        Dim printDialog As New PrintDialog()
        If printDialog.ShowDialog() = DialogResult.OK Then
            currentPdf.Print()
        End If
    End If
End Sub

Private Sub btnSaveImage_Click(sender As Object, e As EventArgs) Handles btnSave.Click
    If PictureBox1.Image IsNot Nothing Then
        Using saveDialog As New SaveFileDialog()
            saveDialog.Filter = "PNG Image|*.png|JPEG Image|*.jpg|TIF Image|*.tif"
            If saveDialog.ShowDialog() = DialogResult.OK Then
                PictureBox1.Image.Save(saveDialog.FileName)
            End If
        End Using
    End If
End Sub
VB .NET

列印對話框

! VB .NET 在 PictureBox 中顯示 PDF:在 Windows 窗體中將 PDF 頁面渲染為圖像:圖 5 - 列印按鈕工作範例

列印功能使用 IronPDF 內建的列印方法,該方法與 Microsoft Windows 列印基礎架構整合。 儲存功能會將目前頁面匯出為使用者選擇格式的影像檔案。 這些特性使得PDF檢視器適用於文件管理應用。

結論

透過 IronPDF 的影像轉換功能,在 VB.NET Windows Forms 應用程式中建立 PDF 檢視器變得非常簡單。 透過將 PDF 頁面渲染為位圖,開發人員可以在標準的PictureBox控制項中顯示 PDF 文檔,而無需外部相依性。 此方法支援頁面導航、縮放控制和列印功能,可實現完整的文件檢視解決方案。

立即開始免費試用,在 Windows Forms 專案中實現 PDF 顯示,或購買授權進行生產部署。

常見問題解答

如何使用 VB.NET 在 Windows Forms PictureBox 中顯示 PDF?

您可以使用 IronPDF 的 ToBitmap 方法在 Windows Forms PictureBox 中顯示 PDF,此方法可將 PDF 頁面呈現為影像。

IronPDF 提供了哪些方法在 VB.NET 中渲染 PDF 頁面?

IronPDF 提供 ToBitmap 方法,可將 PDF 頁面呈現為影像,然後可以在 VB.NET 中的 PictureBox 控件中顯示。

是否可以在 PictureBox 中瀏覽 PDF 頁面?

是的,您可以使用 IronPDF 的頁面導覽功能來導覽 PDF 頁面,允許您在 PictureBox 控件中顯示不同的頁面。

使用 IronPDF 在 Windows Forms 中顯示 PDF 有哪些優點?

IronPdf 通過將 PDF 頁面轉換成圖片,簡化了在 Windows 窗體中顯示 PDF 的過程,這些圖片可以輕鬆地整合到 PictureBox 之類的控制項中。它還支援頁面導覽等功能。

IronPDF 是否可以處理多頁 PDF,以便在 PictureBox 中顯示?

是的,IronPDF 可以處理多頁 PDF。您可以使用其方法選擇特定頁面,並將其渲染為圖片,以顯示在 PictureBox 中。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。