跳過到頁腳內容
USING IRONPDF

VB.NET Print Form to PDF Tutorial

IronPDF 允許 VB.NET 開發人員將 Windows Forms 轉換為 PDF 文檔,而無需複雜的 PDF 印表機設定或 Adobe 依賴項。 只需將表單資料擷取為 HTML 或影像,然後使用 IronPDF 的渲染引擎快速建立專業的 PDF 檔案。

在 VB.NET 中將 Windows 表單轉換為PDF 文件是一個常見的需求,但 .NET Framework 缺乏原生PDF 列印功能。 您需要一種可靠的方法來從報表產生 PDF 文件、儲存表單資料或建立可列印文件。 無論您是使用ASP.NET MVC 應用程式還是桌面軟體,產生 PDF 檔案的需求仍然至關重要。

幸運的是,IronPDF 提供了一個快速簡單的解決方案。 這款工具讓您無需安裝 Adobe Reader 或進行複雜的 PDF 印表機設置,即可將表單列印為 PDF 檔案。 IronPDF 支援HTML 轉 PDF影像處理進階格式設置,能夠處理從簡單表單到複雜報告的各種需求。 這份完整指南將向您展示如何在幾分鐘內完成操作。

為什麼選擇 IronPDF 進行表單到 PDF 文件轉換?

IronPDF 是一個完整的.NET PDF 庫,它簡化了將 Windows 窗體和 Web 窗體(包括ASPX 頁面)轉換為 PDF 文件的過程。 與依賴 PDF 印表機或複雜繪圖操作的傳統方法不同,IronPDF 使用Chrome 渲染引擎,從您的 VB.NET 專案產生像素級精確的 PDF 檔案。 該引擎支援現代 Web 標準,包括JavaScript 執行CSS3 樣式響應式佈局

該庫處理PDF 內容創建的各個方面,從渲染表單控制項到管理頁面佈局,使其成為Windows Forms 應用程式ASP.NET Web 應用程式的理想選擇。 IronPDF 的 HTML 轉 PDF功能可以有效率地建立專業文檔,從而顯著加快開發速度。 該庫還支援非同步操作,以提高多用戶環境下的效能,並支援記憶體流操作,以適應雲端部署。

對於企業應用,IronPDF 提供PDF/A 合規性(用於存檔目的)、數位簽章(用於文件真實性)和加密選項(用於安全)等功能。 該程式庫可與Azure 服務AWS LambdaDocker 容器無縫集成,使其適用於現代雲端架構。

如何在我的VB.NET專案中安裝IronPDF?

使用 IronPDF 入門只需幾分鐘。 最簡單的安裝方法是使用 Visual Studio 中的NuGet 套件管理器

  1. 在解決方案資源管理器中以滑鼠右鍵按一下您的專案。
  2. 選擇"管理 NuGet 套件"
  3. 搜尋"IronPDF"
  4. 點選"安裝"以新增最新版本

或者,使用以下命令開啟軟體包管理器控制台:

Install-Package IronPdf

有關詳細的安裝說明,請造訪IronPDF 安裝指南。 安裝完成後,新增 Imports IronPDF 即可開始使用該程式庫的強大功能。 安裝程序會自動處理原生依賴項執行時間要求,確保在不同環境下流暢運作。

!!!—LIBRARY_NUGET_INSTALL_BLOCK—!!!

如何使用程式碼將 Windows Forms 轉換為 PDF?

以下程式碼範例展示如何擷取 Windows 窗體並將其轉換為新的PDFDocument 物件

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronPDF

    PM > Install-Package IronPdf

  2. 複製並運行這段程式碼。

    Imports IronPdf
    Imports System.Drawing
    Imports System.Windows.Forms
    Public Class Form1
        Private Sub btnPrintToPDF_Click(sender As Object, e As EventArgs) Handles btnPrintToPDF.Click
            ' Capture the form as HTML content
            Dim htmlContent As String = GenerateFormHTML()
            ' Initialize IronPDF's ChromePdfRenderer instance
            Dim renderer As New ChromePdfRenderer()
            ' Configure rendering options for better output
            renderer.RenderingOptions.MarginTop = 10
            renderer.RenderingOptions.MarginBottom = 10
            renderer.RenderingOptions.MarginLeft = 10
            renderer.RenderingOptions.MarginRight = 10
            ' Generate PDF from HTML content
            Dim pdfDocument As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
            ' Save the PDF file
            Dim fileName As String = "FormOutput.pdf"
            pdfDocument.SaveAs(fileName)
            ' Optional: Open the generated PDF
            Process.Start(fileName)
        End Sub
        Private Function GenerateFormHTML() As String
            ' Build HTML representation of your form
            Dim html As New System.Text.StringBuilder()
            html.Append("<html><head>")
            html.Append("<style>")
            html.Append("body { font-family: Arial, sans-serif; }")
            html.Append("table { width: 100%; border-collapse: collapse; }")
            html.Append("td { padding: 8px; border: 1px solid #ddd; }")
            html.Append("</style>")
            html.Append("</head><body>")
            html.Append("<h1>Hello World</h1>")
            html.Append("<table>")
            ' Add form controls data
            For Each ctrl As Control In Me.Controls
                If TypeOf ctrl Is TextBox Then
                    Dim textBox As TextBox = DirectCast(ctrl, TextBox)
                    html.AppendFormat("<tr><td>{0}:</td><td>{1}</td></tr>", 
                                    textBox.Name, textBox.Text)
                ElseIf TypeOf ctrl Is ComboBox Then
                    Dim comboBox As ComboBox = DirectCast(ctrl, ComboBox)
                    html.AppendFormat("<tr><td>{0}:</td><td>{1}</td></tr>", 
                                    comboBox.Name, comboBox.Text)
                End If
            Next
            html.Append("</table>")
            html.Append("</body></html>")
            Return html.ToString()
        End Function
    End Sub
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronPDF,免費試用!
    arrow pointer

這段程式碼片段示範了幾個關鍵概念。首先,它透過遍歷 Windows 窗體控制項來擷取表單資料。 然後,它使用CSS 樣式建立具有適當格式的HTML 表示。 最後,IronPDF 的RenderUrlAsPdf 方法變體RenderHtmlAsPdf將此 HTML 轉換為具有專業格式的PDF 文件。 此方法可自動處理所有PDF 內容生成,確保您的表單能夠準確地以指定的檔案名稱輸出到輸出檔案中。 從網頁或 URL 建立新文件時,也可以採用類似的方法。

ChromePdfRenderer 類別提供了廣泛的自訂選項,包括紙張大小方向設定邊距配置。 您也可以套用CSS 媒體類型來控制內容在列印模式和螢幕模式下的顯示方式,並使用JavaScript 渲染延遲來處理需要時間載入的動態內容。

轉換前的 Windows 窗體是什麼樣子的?

![Windows 窗體應用程式介面,顯示名字(包含"Jane")和姓氏(包含"Doe")的輸入字段,以及顯示"選項 A"、"選項 B"和"選項 C"的下拉選擇選單。 此表單的標題列為粉紅色,底部狀態列中有一個"列印為 PDF"按鈕,用於將表單資料轉換為 PDF 格式。 (https://ironpdf.com/static-assets/pdf/blog/vb-net-print-form-to-pdf/vb-net-print-form-to-pdf-1.webp

轉換後的PDF文件外觀如何?

Adobe PDF 檢視器顯示成功轉換的表單數據,文件標題為Hello World。 PDF 檔案顯示了一個格式化的表格,其中包含三行資料:cboSelection 欄位包含選項 A,txtLastName 欄位包含Doe,txtFirstName 欄位顯示Jane。 檢視器介麵包括標準 PDF 導覽控制項、縮放選項設定為 47% 以及顯示1/1的頁面導覽。

何時應該使用影像擷取功能來處理複雜表單?

對於具有複雜圖形或自訂繪圖的表單,您可以將表單擷取為影像。 以下程式碼片段展示了這種方法:

Private Sub PrintFormAsImage()
    ' Capture form as bitmap
    Dim bitmap As New Bitmap(Me.Width, Me.Height)
    Me.DrawToBitmap(bitmap, New Rectangle(0, 0, Me.Width, Me.Height))
    ' Save bitmap to memory stream
    Dim ms As New System.IO.MemoryStream()
    bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
    ' Convert image to PDF using IronPDF
    Dim pdfDocument As PdfDocument = ImageToPdfConverter.ImageToPdf(ms.ToArray())
    pdfDocument.SaveAs("FormImage.pdf")
End Sub
Private Sub PrintFormAsImage()
    ' Capture form as bitmap
    Dim bitmap As New Bitmap(Me.Width, Me.Height)
    Me.DrawToBitmap(bitmap, New Rectangle(0, 0, Me.Width, Me.Height))
    ' Save bitmap to memory stream
    Dim ms As New System.IO.MemoryStream()
    bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
    ' Convert image to PDF using IronPDF
    Dim pdfDocument As PdfDocument = ImageToPdfConverter.ImageToPdf(ms.ToArray())
    pdfDocument.SaveAs("FormImage.pdf")
End Sub
Private Sub PrintFormAsImage()
    ' Capture form as bitmap
    Dim bitmap As New Bitmap(Me.Width, Me.Height)
    Me.DrawToBitmap(bitmap, New Rectangle(0, 0, Me.Width, Me.Height))
    ' Save bitmap to memory stream
    Dim ms As New System.IO.MemoryStream()
    bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
    ' Convert image to PDF using IronPDF
    Dim pdfDocument As PdfDocument = ImageToPdfConverter.ImageToPdf(ms.ToArray())
    pdfDocument.SaveAs("FormImage.pdf")
End Sub
$vbLabelText   $csharpLabel

這段程式碼為複雜表單提供了一種替代方法。 它使用DrawToBitmap方法將整個表單捕獲為影像,保留精確的視覺外觀,包括自訂圖形和特殊控制項。 ImageToPdfConverter 類別可確保將PNG 或其他影像格式高品質轉換為 PDF。 此方法為複雜表單的處理提供了一個清晰的參考。 影像擷取方法對於包含WebGL 內容SVG 圖形或自訂繪製元素的表單尤其有效,這些元素可能無法很好地轉換為 HTML。

在進行圖片為基礎的轉換時,您也可以使用Base64 編碼將圖片直接嵌入到 HTML 內容中。 當處理記憶體流或需要建立不依賴外部資源的獨立 PDF時,這種方法非常有用。 對於包含多張圖片或複雜版面的表單,建議使用多幀 TIFF 轉換以更好地進行組織。

如何將PDF文件直接列印到印表機?

產生 PDF 文件後,IronPDF 也支援直接列印

' Print PDF to default printer
pdfDocument.Print()
' Print with specific settings
Dim printDoc As System.Drawing.Printing.PrintDocument = pdfDocument.GetPrintDocument()
printDoc.PrinterSettings.PrinterName = "My Printer"
printDoc.Print()
' Print PDF to default printer
pdfDocument.Print()
' Print with specific settings
Dim printDoc As System.Drawing.Printing.PrintDocument = pdfDocument.GetPrintDocument()
printDoc.PrinterSettings.PrinterName = "My Printer"
printDoc.Print()
' Print PDF to default printer
pdfDocument.Print()
' Print with specific settings
Dim printDoc As System.Drawing.Printing.PrintDocument = pdfDocument.GetPrintDocument()
printDoc.PrinterSettings.PrinterName = "My Printer"
printDoc.Print()
$vbLabelText   $csharpLabel

此範例程式碼向您展示如何直接列印 PDF 文件而無需打開它們。 第一種方法會將文件傳送到預設印表機,而第二種方法可讓您以程式設計方式指定印表機設定。 有關列印 PDF 文件的更多詳細信息,請查看IronPDF 列印文件。 此庫同時支援本機印表機和網路印表機,因此適用於需要集中列印的企業環境。

我可以為PDF檔案新增哪些專業功能?

IronPDF 讓您能夠透過專業功能來改善您的 PDF 文件。 這包括高級編輯選項

' Add headers and footers
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
    .CenterText = "Company Report",
    .DrawDividerLine = True
}
' Set page numbers on first page and beyond
renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
    .RightText = "Page {page} of {total-pages}",
    .FontSize = 10
}
' Add watermark for confidential documents
renderer.RenderingOptions.ApplyWatermark("<h2 style='color:red'>CONFIDENTIAL</h2>", 30, 
    VerticalAlignment.Middle, HorizontalAlignment.Center)
' Set PDF metadata
pdfDocument.MetaData.Author = "VB.NET Application"
pdfDocument.MetaData.Title = "Form Export Report"
pdfDocument.MetaData.CreationDate = DateTime.Now
' Apply password protection
pdfDocument.Password = "secretPassword123"
' Add headers and footers
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
    .CenterText = "Company Report",
    .DrawDividerLine = True
}
' Set page numbers on first page and beyond
renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
    .RightText = "Page {page} of {total-pages}",
    .FontSize = 10
}
' Add watermark for confidential documents
renderer.RenderingOptions.ApplyWatermark("<h2 style='color:red'>CONFIDENTIAL</h2>", 30, 
    VerticalAlignment.Middle, HorizontalAlignment.Center)
' Set PDF metadata
pdfDocument.MetaData.Author = "VB.NET Application"
pdfDocument.MetaData.Title = "Form Export Report"
pdfDocument.MetaData.CreationDate = DateTime.Now
' Apply password protection
pdfDocument.Password = "secretPassword123"
' Add headers and footers
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
    .CenterText = "Company Report",
    .DrawDividerLine = True
}
' Set page numbers on first page and beyond
renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
    .RightText = "Page {page} of {total-pages}",
    .FontSize = 10
}
' Add watermark for confidential documents
renderer.RenderingOptions.ApplyWatermark("<h2 style='color:red'>CONFIDENTIAL</h2>", 30, 
    VerticalAlignment.Middle, HorizontalAlignment.Center)
' Set PDF metadata
pdfDocument.MetaData.Author = "VB.NET Application"
pdfDocument.MetaData.Title = "Form Export Report"
pdfDocument.MetaData.CreationDate = DateTime.Now
' Apply password protection
pdfDocument.Password = "secretPassword123"
$vbLabelText   $csharpLabel

這些功能可以將普通的PDF文件轉換為專業文件。 該庫支援對PDF 內容進行完全自訂,從頁首和頁尾安全性設定。 了解更多進階PDF功能,探索所有自訂選項。 您可以為特定頁面實作自訂頁眉,新增帶有標誌和樣式的基於 HTML 的頁眉,或為長文件建立目錄

您還可以新增浮水印、實現支援 HSM 的數位簽章、套用壓縮來減少檔案大小,甚至可以處理PDF 表單。 為了滿足合規性要求,IronPDF 支援產生PDF/A 文件PDF/UA 可存取文件。 進階功能包括文字註釋書籤建立頁面操作,以實現對文件的完全控制。

最終 PDF 文件中的頁首和頁尾是什麼樣的?

專業 PDF 輸出,顯示 VB.NET 表單數據,頁面頂部居中顯示公司報告標題,右下角顯示第 1 頁,共 1 頁頁腳。 文件內容顯示一個已格式化的表格,其中包含表單欄位資料:cboSelection 顯示選項 C,txtLastName 顯示Doe,txtFirstName 顯示Jane,所有欄位均以清晰的格式和適當的間距呈現。

將表單轉換為 PDF 時常見的問題有哪些?

.NET應用程式中進行表單到PDF的轉換時,請記住以下幾點:

如果遇到渲染問題,請檢查您的CSS 是否相容,並考慮對複雜的 JavaScript 內容使用渲染延遲。 如果遇到字體相關問題,請確保已正確嵌入所需的字體。 常見問題還包括長時間運行的應用程式中的記憶體洩漏,您可以透過正確處置 PDF 物件和實施垃圾回收策略來解決此問題。

為了優化效能,可以考慮使用非同步方法來提高吞吐量,實現並行處理以進行批量操作,並使用快取策略來提高渲染速度。 處理大檔案時,提高影像解析度並使用適當的壓縮設定

如需更多協助,請參閱完整的IronPDF 文件或在Stack Overflow上探索社區解決方案。 故障排除指南涵蓋常見場景,包括Azure 部署AWS Lambda 整合Docker 容器化。 有關具體平台問題,請參閱Linux 部署指南、 macOS 相容性指南Android 支援指南。 ## 使用 IronPDF 的下一步是什麼?

IronPDF 簡化了將表單轉換為 PDF 的任務,使轉換過程變得簡單易行。 無論您是開發 Windows Forms 應用程式還是ASP.NET Web 窗體,該程式庫都提供了從VB.NET 專案建立 PDF 文件所需的所有工具。 它的多功能性還涵蓋Blazor 應用程式MAUI 項目,甚至F# 開發

HTML渲染功能與直接表單擷取方法的結合,為管理各種表單類型和要求提供了靈活性。 IronPDF 支援頁首頁尾安全設定等進階功能,為 .NET 應用程式中的PDF 生成提供了完整的解決方案。 其他功能包括條碼生成二維碼支援以及與流行的JavaScript 圖表庫整合。

準備好使用 IronPDF 來完成您的 VB.NET 表單列印到 PDF 的任務,或任何其他PDF 工作流程了嗎? 您可以先免費試用IronPDF,或瀏覽完整的文件API 參考,以發現更多功能。 對於生產部署,授權選項從$799起。 與同類產品相比,該圖書館還提供具有競爭力的價格和卓越的技術支援

立即下載 IronPDF,只需幾行程式碼即可將您的 Windows Forms 文件轉換為專業的 PDF 文件。

常見問題解答

如何使用 VB.NET 將 Windows Forms 轉換為 PDF?

您可以利用 IronPDF for .NET 在 VB.NET 中將 Windows 表單轉換為 PDF,它提供了一種直接從表單資料產生 PDF 檔案的方法。

.NET Framework 是否本機支援 PDF 列印?

不,.NET Framework 不支援原生 PDF 列印。但是,您可以使用 IronPDF 從 Windows Forms 輕鬆轉換和列印 PDF 文件。

使用 IronPDF 打印表格有哪些優點?

IronPDF 簡化了從 Windows Forms 生成 PDF 的過程,提供了代碼示例、安裝指南和強大的故障排除支援等功能,以確保順利創建 PDF。

IronPDF 能否在 VB.NET 中處理複雜的表單資料?

是的,IronPDF 專為處理複雜的表格資料而設計,讓您能從 VB.NET 應用程式中產生精確且高品質的 PDF 文件。

是否有學習使用 VB.NET 將表格轉換為 PDF 的教學?

是的,IronPDF 網站上提供的《VB.NET Print Form to PDF 開發人員指南》提供了全面的教學,包括程式碼範例和疑難排解技巧。

如果在使用 IronPDF 將表格轉換為 PDF 時遇到問題,該怎麼辦?

IronPDF 開發人員指南包括疑難排解提示,可幫助您解決在表單轉換為 PDF 的過程中遇到的常見問題。

將 VB.NET 表單列印為 PDF 時,IronPDF 是否與 .NET 10 完全相容?

是的,IronPDF 與 .NET 10 完全相容。它支援以 .NET 10 為目標的 VB.NET 和 C# 專案,讓您可以將表單轉換為 PDF,並利用 .NET 10 中最新的效能和執行時間改進,而無需任何特殊的變通。

Curtis Chau
技術撰稿人

Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。