跳過到頁腳內容
使用IRONPDF

如何將 VB.NET 表單打印為 PDF

坦白說:在 VB.NET 中將 Windows Forms 轉換為 PDF 文件是一項不斷出現的要求,但 .NET Framework 並不提供原生的 PDF 列印功能。 您需要可靠的方法來從報告產生 PDF 檔案、儲存表單數據或建立可列印的文件。

幸運的是,IronPDF 提供了一個快速而流暢的解決方案。 這個工具讓您能夠列印表單為 PDF 文件,而無需安裝 Adobe Reader 或進行複雜的 PDF 列印機設定。這篇完整的文章將向您展示如何在幾分鐘內完成這一操作。

為什麼使用 IronPDF 進行表單至 PDF 文件轉換?

IronPDF 是一個全面的 .NET PDF 庫,簡化了將 Windows Forms 和網頁表單(包括 ASPX 頁面)轉換為 PDF 文件的過程。 與依賴於 PDF 列印機或複雜繪圖操作的傳統方法不同,IronPDF 使用 Chrome 渲染引擎從您的 VB .NET 專案中產生像素完美的 PDF 文件。

該庫處理 PDF 內容創建的各個方面,從渲染表單控件到管理頁面佈局,適合 Windows Forms 應用程序和 ASP.NET 網頁應用程序。 透過 IronPDF 的 HTML 到 PDF 轉換 功能,開發者可以有效地創建專業文件。 這項強大的資源是加速開發的關鍵。

在 VB.NET 專案中安裝 IronPDF

開始使用 IronPDF 只需幾分鐘。 最簡單的安裝方法是使用 Visual Studio 內的 NuGet 封裝管理器:

  1. 在解決方案資源管理器中右鍵單擊您的專案
  2. 選擇“管理 NuGet 套件”
  3. 搜索 “IronPDF”
  4. 單擊安裝以添加最新版本

或者,使用封裝管理器控制台執行以下命令:

Install-Package IronPdf

有關詳細的設置說明,請造訪 IronPDF 安裝指南 連結。 安裝完成後,添加 Imports IronPDF 開始使用該庫的強大功能。

NuGet 用 NuGet 安裝

PM >  Install-Package IronPdf

NuGet 查看 https://www.nuget.org/packages/IronPdf 以快速安裝。超過 1000 萬次下載,它正在用 C# 改變 PDF 開發。 您還可以下載 DLLWindows 安裝程序

將 Windows Forms 轉換為 PDF:逐步代碼

以下代碼示例顯示如何捕獲並將 Windows 表單轉換為新的 PDFDocument 對象:

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
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
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這段代碼片段展示了幾個關鍵概念。首先,它透過迭代 Windows Forms 控件來捕獲表單數據。 然後,使用 CSS 樣式建構適當格式化的 HTML 表現。 最後,IronPDF 的 RenderUrlAsPdf 方法變體 RenderHtmlAsPdf 將此 HTML 轉換為具專業格式的 PDF 文件。 該方法自動處理所有 PDF 內容生成,確保您的表單在輸出文件中以指定的文件名準確表示。 當從網頁或 URL 創建新文件時也採用類似方法。

Windows 表單介面示例

如何將 VB.NET 表單列印為 PDF:圖1 - Windows 表單輸出示例

輸出 PDF 文件

如何將 VB.NET 表單列印為 PDF:圖2 - PDF 輸出示例

替代方法:使用圖像處理複雜表單

對於具有複雜圖形或自定繪製的表單,您可以將表單捕獲為圖像。 以下代碼片段展示了這種方法:

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
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此代碼為複雜表單提供了另一種方法。 它使用 DrawToBitmap 方法捕捉整個表單為圖片,保留準確的視覺表現,包括自定義圖形和特殊控件。 ImageToPdfConverter 類別 確保從 PNG 或其他圖像格式到 PDF 的高質量轉換。 這為處理複雜表單提供了一個明確的參考。

直接列印 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()
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此示例代碼顯示如何在不開啟文件的情況下直接列印 PDF 文件。 第一種方法將文件發送到默認打印機,而第二種方法允許您以程式方式指定打印機設置。 有關列印 PDF 文件的更多詳細信息,請查看 IronPDF 列印文件文檔

添加專業功能

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 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
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這些功能將基本的 PDF 文件轉變為專業文件。 該庫支持 PDF 內容的全面自定義,從頁眉頁腳到安全設置。 了解有關高級 PDF 功能的更多信息(請注意自定義選項)。

輸出

如何將 VB.NET 表單列印為 PDF:圖3 - 具有自定義頁眉和頁腳的 PDF 輸出示例

常見故障排除提示

在.NET應用程序中進行表單到PDF轉換時,請記住以下要點:

  • 確保安裝了所有必要的 .NET Framework 組件
  • 對於網頁應用程序(ASPX),驗證 IIS 的文件系統訪問權限
  • 表單數據中的國際字符使用 UTF-8 編碼(參數)
  • 使用不同的表單大小測試呈現,以確保正確的頁面佈局
  • 將生成的 PDF 文件儲存在合適的本地副本目錄。 這在表單數據轉換的加載結束時發生

For additional support, consult the comprehensive IronPDF documentation or explore community solutions on Stack Overflow (post a question).

結論

IronPDF 將複雜的表單列印為 PDF 的任務轉變為簡單的過程。 無論您是在構建 Windows Forms 應用程序還是 ASP.NET 網頁表單,該庫都提供了從您的 VB.NET 專案中生成 PDF 文件所需的所有工具。 這是一個強大的資源,適合任何使用者。

HTML 渲染能力和直接表單捕獲方法的組合為開發人員提供處理各種表單類型和需求的靈活性。 通過支持頁眉、頁腳和安全設置等高級功能,IronPDF 為.NET應用程序的PDF生成提供了全面的解決方案。

準備好使用 IronPDF 進行 VB.NET 表單列印為 PDF 任務或任何其他 PDF 工作流了嗎? 開始免費試用 IronPDF,或探索綜合文檔和 API 參考以發掘更多功能。 對於生產部署,許可選項從 $799 開始。

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

常見問題解答

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

您可以使用 IronPDF 將 Windows Forms 在 VB.NET 中轉換為 PDF,IronPDF 提供了一個簡單的方法,可以從表單資料產生 PDF 檔案。

.NET Framework 是否原生支援 PDF 列印?

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

使用 IronPDF 列印表單有哪些好處?

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

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

是的,IronPDF 旨在處理複雜的表單數據,使您能夠從 VB.NET 應用程式產生準確、高品質的 PDF 文件。

有沒有關於如何使用VB.NET將表單轉換為PDF的教學課程?

是的,IronPDF 網站上提供的《VB.NET 表單列印到 PDF 開發人員指南》提供了全面的教學課程,包括程式碼範例和故障排除技巧。

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

IronPDF 開發人員指南包含故障排除技巧,可協助您解決在將表單轉換為 PDF 時遇到的常見問題。

IronPDF 將 VB.NET 表單列印為 PDF 時是否完全相容於 .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 機器人,結合科技與創意的樂趣。