跳過到頁腳內容
使用IRONPDF

PDF Forms .NET SDK:使用 IronPDF 在 C# 中建立可填寫的 PDF 檔案

互動式 PDF 表單可將靜態 PDF 文件轉換為動態資料收集工具。 無論是建立客戶接待系統、自動化政府合規文件,或是簡化內部工作流程,以程式化方式建立、填寫和處理 PDF 檔案的能力都能節省無數的開發時間。 對於涉及掃描文件或數位與紙張混合流程的工作流程,光學字元識別 (OCR) 等進階功能可將影像或掃描的表格輸入轉換為機器可讀的文字,進一步提升自動化程度。

各行各業的組織都仰賴可填寫的 PDF 表單來收集標準化的資料。 醫療保健提供者將這些工具用於病患註冊、金融機構用於貸款申請,以及政府機構用於公民服務。 挑戰在於如何動態產生這些表單、從不同資料來源填充現有資料,以及擷取表單資料進行處理 - 一切都不需要手動介入。 在處理大量生成的文件時,表單通常會被匯出、歸檔或以壓縮檔的方式傳送,以便於分發。

本指南演示了如何使用現代的 .NET PDF 函式庫 IronPDF 將全面的 PDF 表單功能整合到 .NET 應用程式中。 每種技術都包含可在幾行內實現的工作代碼範例。

PDF Forms .NET SDK:使用 IronPDF 在 C# 中建立可填寫的 PDF:圖片 1 - IronPdf

是什麼讓 PDF 表單 SDK 成為 .NET 開發中不可或缺的工具?

PDF SDK 提供在 PDF 文件中建立、處理和處理互動表單欄位所需的程式工具。 與在桌面應用程式中手動設計表單相比,開發人員可以使用 Visual Studio 或任何相容的建立工具,直接從 .NET 應用程式中產生動態、資料驅動的表單。

互動式 PDF 表單最廣泛支援的格式是 AcroForms,它自 1998 年起就成為 PDF 規格的一部分。AcroForms 支援文字表單欄位、核取方塊、單選按鈕、下拉式選單和簽名欄位,使用者可以在任何標準的 PDF 檢視器中完成這些欄位。 與 XFA 表格不同,AcroForms 可在 Adobe Reader、瀏覽器瀏覽器和行動應用程式之間維持跨平台相容性。

現代的 .NET PDF 函式庫解決方案可為企業應用程式提供關鍵功能:將 HTML 表單結構直接轉換為可填寫的 PDF 欄位; 在任何 PDF 頁面上以程式化方式加入具有精確定位的個別表格元素; 讀寫表格資料值,以便與各種資料來源的資料庫整合; 以及為自動化工作流程處理成批完成的表格。 最好的 SDK 在提供直覺式 API 的同時,還具有低記憶體使用率和優異的效能。

在生產環境中,部署的靈活性也同樣重要。 IronPdf 可在 Windows、Linux、macOS 以及 Docker 和 Kubernetes 等容器化環境中執行。 無論 .NET 應用程式在何處執行 - 無論是針對 .NET Framework、.NET Core 或現代 .NET 版本,這種跨平台相容性都能確保 PDF 生成工作的一致性。

PDF Forms .NET SDK:使用 IronPDF 在 C# 中建立可填寫的 PDF:圖片 2 - 跨平台相容性

透過 Visual Studio 的解決方案資源管理器或套件管理器控制台安裝 IronPDF NuGet 套件:

Install-Package IronPdf
Install-Package IronPdf
SHELL

PDF Forms .NET SDK:使用 IronPDF 在 C# 中建立可填寫的 PDF:圖片 3 - 安裝

開發人員如何從 HTML 建立 PDF 表單?

建立 PDF 表單最直覺的方法是利用現有的 HTML 知識。 當您將 HTML 轉換成 PDF 時,標準的 HTML 表單元素如 <input>, <textarea>, <select> 以及各種輸入類型會直接轉換成其 PDF 表單欄位的對應元素。

將 HTML 表單轉換為 PDF 需要在呈現選項中啟用表單建立功能。 CreatePdfFormsFromHtml 屬性指示渲染引擎將 HTML 表格元素解釋為互動式 AcroForm 欄位,而非輸出 PDF 中的靜態視覺內容。

using IronPdf;
// HTML containing various form elements for PDF creation
string formHtml = @"
<html>
<body>
    <h2>Customer Registration</h2>
    <form>
        <label>Full Name:</label><br/>
        <input type='text' name='fullName'><br/>
        <label>Email Address:</label><br/>
        <input type='email' name='email'><br/>
        <label>Account Type:</label><br/>
        <select name='accountType'>
            <option value='personal'>Personal</option>
            <option value='business'>Business</option>
        </select><br/>
        <label>Services:</label><br/>
        <input type='checkbox' name='services' value='newsletter'>Subscribe to newsletter<br/>
        <label>Comments:</label><br/>
        <textarea name='comments' rows='4' style='width:300px'></textarea>
    </form>
</body>
</html>";
// Configure renderer to generate PDF with form fields
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Generate the PDF document with interactive forms
PdfDocument pdf = renderer.RenderHtmlAsPdf(formHtml);
pdf.SaveAs("registration-form.pdf");
using IronPdf;
// HTML containing various form elements for PDF creation
string formHtml = @"
<html>
<body>
    <h2>Customer Registration</h2>
    <form>
        <label>Full Name:</label><br/>
        <input type='text' name='fullName'><br/>
        <label>Email Address:</label><br/>
        <input type='email' name='email'><br/>
        <label>Account Type:</label><br/>
        <select name='accountType'>
            <option value='personal'>Personal</option>
            <option value='business'>Business</option>
        </select><br/>
        <label>Services:</label><br/>
        <input type='checkbox' name='services' value='newsletter'>Subscribe to newsletter<br/>
        <label>Comments:</label><br/>
        <textarea name='comments' rows='4' style='width:300px'></textarea>
    </form>
</body>
</html>";
// Configure renderer to generate PDF with form fields
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Generate the PDF document with interactive forms
PdfDocument pdf = renderer.RenderHtmlAsPdf(formHtml);
pdf.SaveAs("registration-form.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

以下程式碼片段會建立一個完整的客戶註冊表單,其中包含多種欄位類型。ChromePdfRenderer 類會處理 HTML 至 PDF 的轉換,而設定 CreatePdfFormsFromHtml = true 則可確保表單元素會呈現為互動欄位。 每個 HTML 輸入的 name 屬性在以程式化方式讀取或寫入表單資料時,可作為欄位的識別碼。

輸出

PDF Forms .NET SDK:使用 IronPDF 在 C# 中建立可填寫的 PDF:圖片 4 - PDF 輸出

文字輸入和文字區域會變成可編輯的文字表單欄位,使用者可以在其中輸入回應。 具有匹配名稱屬性的單選按鈕組合在一起,因此只能選擇一個。 翻譯後的 PDF 檔案可在任何標準的檢視器中開啟,並提供功能完整的表格欄位供使用者填寫。

當表單設計已經以網頁形式存在,或是團隊偏好以熟悉的標記來維護表單,這種以 HTML 為基礎的方法就很有效。.NET SDK 會在幕後處理所有複雜的 PDF 生成工作。

PDF Forms .NET SDK:使用 IronPDF 在 C# 中建立可填寫的 PDF:圖像 5 - 功能

如何以程式方式新增表單欄位?

當需要精確控制欄位位置,或在現有 PDF 文件中加入表單時,程式化 API 方法可提供最大的彈性。 可透過程式化方式建立、定位及設定個別表格欄位,以產生您所需的精確文件結構。

using IronPdf;
using IronSoftware.Forms;
// Start with a basic PDF document
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Application Form</h1><p>Please complete all fields below.</p>");
// Add a text form field at specific coordinates on the PDF page
// Parameters: name, default value, page index, x position, y position, width, height
var nameField = new TextFormField("applicantName", "", 0, 50, 700, 200, 20);
pdf.Form.Add(nameField);
// Add a checkbox field to the document
var termsCheckbox = new CheckboxFormField("agreeTerms", "no", 0, 50, 650, 15, 15);
pdf.Form.Add(termsCheckbox);
// Add a combobox (dropdown) with options for users to select
var departmentCombo = new ComboboxFormField("department", "", 0, 50, 600, 150, 20, new List<string> { "Engineering", "Marketing", "Sales", "Support" });
pdf.Form.Add(departmentCombo);
// Save the output PDF document
pdf.SaveAs("application-with-fields.pdf");
using IronPdf;
using IronSoftware.Forms;
// Start with a basic PDF document
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Application Form</h1><p>Please complete all fields below.</p>");
// Add a text form field at specific coordinates on the PDF page
// Parameters: name, default value, page index, x position, y position, width, height
var nameField = new TextFormField("applicantName", "", 0, 50, 700, 200, 20);
pdf.Form.Add(nameField);
// Add a checkbox field to the document
var termsCheckbox = new CheckboxFormField("agreeTerms", "no", 0, 50, 650, 15, 15);
pdf.Form.Add(termsCheckbox);
// Add a combobox (dropdown) with options for users to select
var departmentCombo = new ComboboxFormField("department", "", 0, 50, 600, 150, 20, new List<string> { "Engineering", "Marketing", "Sales", "Support" });
pdf.Form.Add(departmentCombo);
// Save the output PDF document
pdf.SaveAs("application-with-fields.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

本範例示範如何新增三種欄位類型,以建立具有互動式表單欄位的 PDF。 TextFormField 使用頁面座標建立單行文字輸入,原點 (0,0) 位於 PDF 頁面的左下角。

CheckboxFormField 放置一個可切換的核取方塊,而 ComboboxFormField 則建立一個下拉式選單。 PDF 函式庫會自動處理所有低階文件結構。

程式化方法擅長從資料庫模式動態產生表單,或在現有文件中加入表單欄位。 這兩種方法都可以結合使用 - 使用 HTML 作為基本版面,同時以程式化方式新增特定欄位。 .NET SDK 的程式碼範例文件完整,涵蓋每個表單欄位類型。

PDF Forms .NET SDK:使用 IronPDF 在 C# 中建立可填寫的 PDF:Image 6 - PDF Forms .NET SDK - IronPDF

有哪些方法可用於填寫現有的 PDF 表單?

許多工作流程涉及完成現有的表單,而非建立新的表單。 政府表格、合約和標準化文件通常會以預先設計的 PDF 檔案形式送達,並具有既定的欄位結構。 以程式化的方式填寫這些表單,可在 Web 應用程式和後端系統中大規模地自動產生和處理文件。

using IronPdf;
// Load a PDF file containing existing form fields
PdfDocument pdf = PdfDocument.FromFile("existing-application.pdf");
// Find and fill specific form fields by name
var nameField = pdf.Form.FindFormField("applicantName");
nameField.Value = "Sarah Johnson";
var emailField = pdf.Form.FindFormField("email");
emailField.Value = "sarah.johnson@example.com";
// Set checkbox and radio button values
var termsField = pdf.Form.FindFormField("agreeTerms");
termsField.Value = "Yes";
var accountTypeField = pdf.Form.FindFormField("accountType");
accountTypeField.Value = "business";
// Set dropdown selection
var departmentField = pdf.Form.FindFormField("department");
departmentField.Value = "Engineering";
// Save the completed output PDF document
pdf.SaveAs("completed-application.pdf");
using IronPdf;
// Load a PDF file containing existing form fields
PdfDocument pdf = PdfDocument.FromFile("existing-application.pdf");
// Find and fill specific form fields by name
var nameField = pdf.Form.FindFormField("applicantName");
nameField.Value = "Sarah Johnson";
var emailField = pdf.Form.FindFormField("email");
emailField.Value = "sarah.johnson@example.com";
// Set checkbox and radio button values
var termsField = pdf.Form.FindFormField("agreeTerms");
termsField.Value = "Yes";
var accountTypeField = pdf.Form.FindFormField("accountType");
accountTypeField.Value = "business";
// Set dropdown selection
var departmentField = pdf.Form.FindFormField("department");
departmentField.Value = "Engineering";
// Save the completed output PDF document
pdf.SaveAs("completed-application.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PdfDocument.FromFile 方法會將任何包含 AcroForm 欄位的 PDF 檔案載入記憶體以供編輯。 FindFormField 方法根據在表單建立時指定的名稱來定位欄位。 設定 Value 屬性可將資料來源的資料填入欄位。

輸入

PDF Forms .NET SDK:使用 IronPDF 在 C# 中建立可填寫的 PDF:圖片 7 - PDF 輸入範例

輸出

PDF Forms .NET SDK:使用 IronPDF 在 C# 中建立可填寫的 PDF:圖片 8 - 填充 PDF 輸出

不同的欄位類型接受適當的值格式。 文字表單欄位直接取用字串內容。 核取方塊通常接受"是"或"否"。 單選按鈕接受所選選項的值。 在處理有許多欄位的表單時,直接在表單集合上反覆處理會更有效率,讓您可以處理多個 PDF 檔案。

如何讀取和萃取表單資料?

從完成的 PDF 文件中萃取表單資料可與資料庫、驗證系統及下游處理工作流程整合。 當使用者提交填寫完成的表單時,無論是透過電子郵件接收、透過網路入口上傳,或是從共用資料夾中收集,所提交的值都需要擷取以進行業務處理。

讀取表格欄位值遵循類似填寫表格的模式,但擷取資訊而非設定資訊。 表單集合揭露所有欄位,允許有針對性地擷取特定值,並全面迭代每個欄位。 您也可以將表單資料匯出成各種格式,以便與其他系統整合。

using IronPdf;
// Load a completed PDF form for data extraction
PdfDocument pdf = PdfDocument.FromFile("submitted-form.pdf");
// Iterate through all form fields to extract text and values
Console.WriteLine("Form Data Extraction:");
Console.WriteLine("----------------------");
foreach (var field in pdf.Form)
{
    Console.WriteLine($"Field: {field.Name}");
    Console.WriteLine($"Value: {field.Value}");
    Console.WriteLine($"Type: {field.GetType().Name}");
    Console.WriteLine();
}
// Or retrieve specific fields for targeted processing
var customerName = pdf.Form.FindFormField("applicantName")?.Value ?? "Not provided";
var customerEmail = pdf.Form.FindFormField("email")?.Value ?? "Not provided";
Console.WriteLine($"Customer: {customerName} ({customerEmail})");
using IronPdf;
// Load a completed PDF form for data extraction
PdfDocument pdf = PdfDocument.FromFile("submitted-form.pdf");
// Iterate through all form fields to extract text and values
Console.WriteLine("Form Data Extraction:");
Console.WriteLine("----------------------");
foreach (var field in pdf.Form)
{
    Console.WriteLine($"Field: {field.Name}");
    Console.WriteLine($"Value: {field.Value}");
    Console.WriteLine($"Type: {field.GetType().Name}");
    Console.WriteLine();
}
// Or retrieve specific fields for targeted processing
var customerName = pdf.Form.FindFormField("applicantName")?.Value ?? "Not provided";
var customerEmail = pdf.Form.FindFormField("email")?.Value ?? "Not provided";
Console.WriteLine($"Customer: {customerName} ({customerEmail})");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Form 屬性揭露了文件中所有表單欄位的可枚举集合。 每個欄位物件提供其 Name 、目前的 Value 以及類型資訊。 這樣就能建立通用的表單處理器,處理任何 PDF 表單結構,而不需要硬編碼的欄位名稱。

輸出

PDF Forms .NET SDK:使用 IronPDF 在 C# 中建立可填寫的 PDF:圖片 9 - 控制台輸出

針對目標擷取,FindFormField 會依名稱擷取個別欄位。 null-conditional 運算符 (?.) 可處理預期欄位可能不存在的情況,防止在處理來自不同來源的表單時發生執行時錯誤。

擷取的資料會自然地與 Entity Framework 或 ADO.NET 整合,以進行資料庫儲存。 JSON 序列化可實現 Web 應用程式的 API 回應,而 CSV 生成可支援報告工作流程。 .NET PDF 函式庫可讓您直接將表單資料匯入現有系統。

哪些真實世界場景會受益於 PDF 表單自動化?

PDF 表單自動化在眾多產業和使用個案中提供了可衡量的價值。 醫療照護機構處理病患入院表格、保險索賠和同意書文件。 法務部門除了處理 Word 文件和其他檔案類型之外,還要處理契約、宣誓書和合規認證。人力資源團隊管理就業申請、福利註冊和績效審查。 金融服務自動化貸款申請、帳戶開立以及可能也需要數位簽名的監管文件。

連接這些情境的共同點是大量、重複的文件處理,其中手動資料輸入造成瓶頸並引發錯誤。 自動化文件產生和表單處理可將交貨時間從數天縮短到數秒,同時提高資料的準確性。

考慮一個常見的情況:從資料庫記錄中為數以千計的客戶產生個人化的評論表單。 與其手動建立每個表單,不如透過簡單的迴圈處理整個資料集,為每筆記錄產生 PDF。

using IronPdf;
// Example: Generating personalized PDF forms from database records
var customers = GetCustomersFromDatabase(); // Returns customer data from your data sources
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
foreach (var customer in customers)
{
    // Generate each form with customer data pre-filled
    string formHtml = $@"
    <html><body>
        <h2>Annual Review Form</h2>
        <p>Customer: {customer.Name}</p>
        <p>Account: {customer.AccountNumber}</p>
        <label>Satisfaction Rating:</label><br/>
         1
         2
         3
         4
        <label>Feedback:</label><br/>
        <textarea name='feedback' rows='5' style='width:100%'></textarea>
    </body></html>";
    PdfDocument pdf = renderer.RenderHtmlAsPdf(formHtml);
    pdf.SaveAs($"review-form-{customer.AccountNumber}.pdf");
}
using IronPdf;
// Example: Generating personalized PDF forms from database records
var customers = GetCustomersFromDatabase(); // Returns customer data from your data sources
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
foreach (var customer in customers)
{
    // Generate each form with customer data pre-filled
    string formHtml = $@"
    <html><body>
        <h2>Annual Review Form</h2>
        <p>Customer: {customer.Name}</p>
        <p>Account: {customer.AccountNumber}</p>
        <label>Satisfaction Rating:</label><br/>
         1
         2
         3
         4
        <label>Feedback:</label><br/>
        <textarea name='feedback' rows='5' style='width:100%'></textarea>
    </body></html>";
    PdfDocument pdf = renderer.RenderHtmlAsPdf(formHtml);
    pdf.SaveAs($"review-form-{customer.AccountNumber}.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此模式示範如何為每個客戶記錄產生個人化的表單。 HTML 模板包含靜態客戶資訊,同時提供互動式表單欄位供使用者填寫。 批次處理數以百計或千計的 PDF 檔案只需數秒鐘,而不是手動準備所需的數小時。

迴圈結構可直接與任何資料來源整合-Entity Framework 查詢、API 回應或來自原始檔案的 CSV 匯入。 每次迭代都會產生一個完整的、可隨時分發的表單,並預先填入收件人的資訊。

整合的可能性包括用於分發的電子郵件自動化、用於歸檔的雲端儲存服務,以及用於完成具有法律約束力的電子簽名平台。 .NET PDF SDK 也支援擷取文字和影像、將 PDF 轉換為其他格式,以及合併多個 PDF 文件等功能。

IronPDF說明文件提供進階方案的其他範例,包括多頁表單處理和表單欄位驗證。 針對複雜的企業工作流程,教學部分提供數位簽章、針對可存取性的標記 PDF 生成以及大量處理最佳化的深入指導。

結論

功能強大的 PDF forms .NET SDK 能改變 .NET 應用程式處理以文件為基礎的資料收集方式。 從簡單的聯絡表單到複雜的多頁應用程式,程式化 PDF 創作可免除手動設計工作,同時實現動態、資料驅動的文件生成。

所涵蓋的技術為建立複雜的表單工作流程奠定基礎。 基於 HTML 的表單建立提供了通往功能性 PDF 表單的最快路徑 - 只需幾行程式碼即可將 HTML 轉換為互動式文件。 程式化欄位新增功能可針對特殊需求提供精確的控制。 表格填寫和資料擷取可實現從建立到處理的端對端自動化。

IronPDF 提供了在生產專案中實現這些功能的完整工具包。 PDF 函式庫可處理複雜的 PDF 表單規格,同時揭露乾淨、直覺式的 API。支援 Windows、Linux、macOS 和容器化部署,可確保表單在所有目標環境中都能一致運作。 無論您使用 Visual Studio、.NET Core CLI 或您偏好的建立工具,都可以透過 Solution Explorer 中的 NuGet 直接整合。

開始免費試用,在您自己的專案中探索 PDF 表單功能,或檢視生產部署的授權選項

PDF Forms .NET SDK:使用 IronPDF 在 C# 中建立可填寫的 PDF:圖片 10 - 授權

常見問題解答

使用互動式PDF表單有哪些好處?

互動式 PDF 表單將靜態 PDF 文件轉換為動態資料收集工具,從而實現客戶接收系統、合規文件和內部工作流程的自動化和效率提升。

PDF表單如何節省開發時間?

PDF 表單允許開發人員以程式設計方式建立、填寫和處理 PDF 文件,從而節省開發時間,減少手動資料輸入的需求,並簡化資料收集流程。

IronPDF 為 PDF 表單自動化提供了哪些進階功能?

IronPDF 提供光學字元辨識 (OCR) 等高級功能,可將影像或掃描的表單輸入轉換為機器可讀的文本,從而增強涉及掃描文件的工作流程的自動化。

IronPDF 能否處理混合數位紙張流程?

是的,IronPDF 可以透過 OCR 將掃描或拍攝的文件輸入轉換為可編輯和可搜尋的文本,從而處理混合數位紙本流程,促進與數位工作流程的無縫整合。

IronPDF 如何提升工作流程效率?

IronPDF 透過建立和處理互動式 PDF 表單、減少手動輸入和實現自動化資料處理,提高了工作效率。

能否使用PDF表格實現政府合規文件的自動化處理?

是的,PDF 表格可以透過動態、可填寫的文件簡化必要資訊的收集和處理,從而實現政府合規文件的自動化。

OCR在PDF表單處理中扮演什麼角色?

OCR 在 PDF 表單處理中發揮著至關重要的作用,它可以將掃描圖像或手寫輸入轉換為機器可讀文本,從而促進資料提取和自動化。

IronPDF 如何提升掃描文件的工作流程?

IronPDF 利用 OCR 技術將基於影像的輸入轉換為文本,從而增強掃描文件的工作流程,使其可在數位系統中進行編輯和搜尋。

Curtis Chau
技術作家

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

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