如何使用.NET SDK在C#中創建、填寫和提取PDF表單
互動式 PDF 表單能將靜態文件轉化為資料收集工具,讓您完全透過程式碼來建立與處理。 無論是建置病患登記入口網站、自動化貸款申請流程,還是從資料庫生成數千份預填妥的合規表單,IronPDF 皆為 .NET 開發人員提供單一且一致的 API,以處理所有表單相關任務——包含表單建立、欄位填入、資料擷取及批次處理。
本指南將透過可直接套用至 .NET 10 專案的 C# 程式碼範例,逐步引導您完成各項任務。

如何開始使用 IronPDF?
IronPDF 可在 NuGet 上取得,並只需約一分鐘即可新增至任何 .NET 專案中。 在 Visual Studio 中開啟套件管理員控制台並執行:
Install-Package IronPdf
Install-Package IronPdf
您也可以在 NuGet 套件管理器 GUI 中搜尋IronPdf ,或使用 .NET CLI 新增它 dotnet add package IronPdf。 無需額外的執行時依賴項或設定檔——此函式庫已內建所有必要元件,可在 Windows、Linux、macOS、Docker 及 Kubernetes 環境中渲染 PDF 檔案。

此軟體套件適用於 .NET Framework 4.6.2+ 和所有現代 .NET 版本,包括 .NET 8、.NET 9 和 .NET 10。安裝軟體包後,在文件頂部新增 using IronPdf;,即可產生您的第一個 PDF 表單。
在生產環境中,跨平台部署的靈活性至關重要。 無論您的應用程式目標是 Windows Server、Linux 容器或 Azure Function App,IronPDF 都能穩定運行——相同的程式碼在每個環境中都會產生相同的輸出結果。
PDF 表單的運作原理為何? 了解 AcroForms
在編寫程式碼之前,先了解您正在建構的內容會有所幫助。 AcroForm 規範(自 1998 年起即為 PDF 標準的一部分)定義了互動式表單欄位,任何標準的 PDF 檢視器皆可顯示並填寫這些欄位。 AcroForms 支援文字欄位、核取方塊、單選按鈕、下拉式清單、清單方塊及簽名欄位。
AcroForms 是 IronPDF 所建立及讀取的檔案格式。 與 XFA 表單(一種較舊的 Adobe 專有格式)不同,AcroForms 可在 Adobe Reader、瀏覽器版 PDF 檢視器及行動應用程式上無縫運作,且不會出現相容性問題。 當您使用 IronPDF 建立 PDF 表單時,產出的將是符合標準的 AcroForm PDF 檔案,任何檢視器皆可開啟。
每個表單欄位皆包含名稱、類型及值。 名稱是您在程式化讀取或寫入資料時所使用的關鍵。 欄位名稱在文件內必須是唯一的——若您根據名稱填寫表單,而欄位名稱不完全相符,寫入操作將無效且不會產生任何提示,這在從資料庫結構填寫表單時,是常見的錯誤來源。
欄位類型決定了可接受的值。 文字欄位可輸入任何字串。 核取方塊接受"是"或"否"。 單選按鈕會接受所選選項的字串值。 下拉選單會接受所選項目的字串值,該值必須是建立欄位時所定義的選項之一。
如何從 HTML 建立 PDF 表單?
建立可填寫 PDF 表單最快速的方法,是先以標準 HTML 編寫,再進行轉換。 每個 HTML 表單元素都直接對應到其對應的 AcroForm 元素:<input type="text"> 變成文字字段,<input type="checkbox"> 變成複選框,<select> 變成下拉式列表,@@--CODE-26560--@@ 變成多行文字欄位。
透過在渲染器的 @@--CODE-26562--@@ 上設定 @@--CODE-26561--@@ 來啟用表單建立。 若未啟用該標記,HTML 表單元素將以靜態視覺內容呈現——您可在 PDF 中看到它們,但它們並非互動式欄位。
using IronPdf;
// HTML with form elements for PDF generation
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>Newsletter:</label><br/>
<input type='checkbox' name='newsletter' value='yes'>Subscribe<br/>
<label>Comments:</label><br/>
<textarea name='comments' rows='4' style='width:300px'></textarea>
</form>
</body>
</html>";
// Enable form field generation from HTML
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Render and save the PDF with interactive fields
PdfDocument pdf = renderer.RenderHtmlAsPdf(formHtml);
pdf.SaveAs("registration-form.pdf");
using IronPdf;
// HTML with form elements for PDF generation
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>Newsletter:</label><br/>
<input type='checkbox' name='newsletter' value='yes'>Subscribe<br/>
<label>Comments:</label><br/>
<textarea name='comments' rows='4' style='width:300px'></textarea>
</form>
</body>
</html>";
// Enable form field generation from HTML
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Render and save the PDF with interactive fields
PdfDocument pdf = renderer.RenderHtmlAsPdf(formHtml);
pdf.SaveAs("registration-form.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
每個 HTML 輸入框的 name 屬性都會成為 PDF 中的欄位名稱。 該名稱是您日後在程式化讀取或寫入欄位值時所使用的名稱。 選擇與您的資料模型相符的名稱——若您打算從資料庫物件填入此表單,請將欄位名稱設定為該物件的屬性名稱。
輸出

文字輸入欄位和文字區域將顯示為可編輯的文字欄位。 具有匹配 name 屬性的單選按鈕會組合在一起,因此只能選擇一個。 核取方塊會顯示為可切換的欄位。 生成的 PDF 檔案可在任何標準檢視器中開啟,且所有表單欄位皆已預先設定好,可直接填寫。
當表單設計已存在於網頁中、您的團隊傾向於以標記語言維護表單,或您需要生成與應用程式現有 HTML 範本完全匹配的表單時,這種基於 HTML 的方法效果極佳。 渲染器負責處理所有 PDF 規格的細節。

如何透過程式碼將表單欄位新增至 PDF 檔案?
當需要精確的座標控制,或您正在向現有 PDF 文件中新增表單欄位時,程式化表單欄位 API 可讓您直接控制每個欄位的位址、大小及預設值。
使用明確的頁面座標建立字段物件。 原點 (0, 0) 位於頁面的左下角,x 軸向右遞增,y 軸向上遞增-與 PDF 規範中使用的座標系相同。
using IronPdf;
using IronSoftware.Forms;
// Generate a base PDF document to add fields to
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(
"<h1>Application Form</h1><p>Please complete all fields below.</p>");
// Text field: name, default value, page index, x, y, width, height
var nameField = new TextFormField("applicantName", "", 0, 50, 700, 200, 20);
pdf.Form.Add(nameField);
// Checkbox field with default unchecked state
var termsCheckbox = new CheckboxFormField("agreeTerms", "no", 0, 50, 650, 15, 15);
pdf.Form.Add(termsCheckbox);
// Dropdown with a defined list of options
var departmentCombo = new ComboboxFormField(
"department", "", 0, 50, 600, 150, 20,
new List<string> { "Engineering", "Marketing", "Sales", "Support" });
pdf.Form.Add(departmentCombo);
// Save the output document
pdf.SaveAs("application-with-fields.pdf");
using IronPdf;
using IronSoftware.Forms;
// Generate a base PDF document to add fields to
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(
"<h1>Application Form</h1><p>Please complete all fields below.</p>");
// Text field: name, default value, page index, x, y, width, height
var nameField = new TextFormField("applicantName", "", 0, 50, 700, 200, 20);
pdf.Form.Add(nameField);
// Checkbox field with default unchecked state
var termsCheckbox = new CheckboxFormField("agreeTerms", "no", 0, 50, 650, 15, 15);
pdf.Form.Add(termsCheckbox);
// Dropdown with a defined list of options
var departmentCombo = new ComboboxFormField(
"department", "", 0, 50, 600, 150, 20,
new List<string> { "Engineering", "Marketing", "Sales", "Support" });
pdf.Form.Add(departmentCombo);
// Save the output document
pdf.SaveAs("application-with-fields.pdf");
Imports IronPdf
Imports IronSoftware.Forms
' Generate a base PDF document to add fields to
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Application Form</h1><p>Please complete all fields below.</p>")
' Text field: name, default value, page index, x, y, width, height
Dim nameField As New TextFormField("applicantName", "", 0, 50, 700, 200, 20)
pdf.Form.Add(nameField)
' Checkbox field with default unchecked state
Dim termsCheckbox As New CheckboxFormField("agreeTerms", "no", 0, 50, 650, 15, 15)
pdf.Form.Add(termsCheckbox)
' Dropdown with a defined list of options
Dim departmentCombo As New ComboboxFormField("department", "", 0, 50, 600, 150, 20, New List(Of String) From {"Engineering", "Marketing", "Sales", "Support"})
pdf.Form.Add(departmentCombo)
' Save the output document
pdf.SaveAs("application-with-fields.pdf")
TextFormField 建立單行文字輸入框。 CheckboxFormField 放置一個可切換的複選框。 ComboboxFormField 建立一個僅限於所提供選項清單的下拉清單。每個類別都公開了用於設定 Tab 鍵順序、工具提示文字、唯讀狀態和必填欄位標誌的附加屬性。
這兩種方法——HTML 轉換與程式化欄位建立——皆可結合使用。 先從 HTML 生成基礎佈局以實現高效的範本控制,再透過 API 添加精準定位的專用欄位。 《表單填寫與編輯指南》涵蓋了所有可用的欄位類型。

如何填寫現有的 PDF 表單?
許多工作流程都始於現有的 PDF 表單——例如政府範本、供應商合約,或是貴組織從合作夥伴處收到的標準化申請表。 透過程式化方式填寫這些表單,可讓您自動化生成文件,無需重新建立原始設計。
使用 PdfDocument.FromFile 載入現有 PDF,使用 FindFormField 按名稱定位每個字段,並為字段的 Value 屬性賦值。
using IronPdf;
// Load the existing PDF containing AcroForm fields
PdfDocument pdf = PdfDocument.FromFile("existing-application.pdf");
// Fill text fields by exact field 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 to one of its defined options
var departmentField = pdf.Form.FindFormField("department");
departmentField.Value = "Engineering";
// Save the completed form
pdf.SaveAs("completed-application.pdf");
using IronPdf;
// Load the existing PDF containing AcroForm fields
PdfDocument pdf = PdfDocument.FromFile("existing-application.pdf");
// Fill text fields by exact field 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 to one of its defined options
var departmentField = pdf.Form.FindFormField("department");
departmentField.Value = "Engineering";
// Save the completed form
pdf.SaveAs("completed-application.pdf");
Imports IronPdf
' Load the existing PDF containing AcroForm fields
Dim pdf As PdfDocument = PdfDocument.FromFile("existing-application.pdf")
' Fill text fields by exact field name
Dim nameField = pdf.Form.FindFormField("applicantName")
nameField.Value = "Sarah Johnson"
Dim emailField = pdf.Form.FindFormField("email")
emailField.Value = "sarah.johnson@example.com"
' Set checkbox and radio button values
Dim termsField = pdf.Form.FindFormField("agreeTerms")
termsField.Value = "Yes"
Dim accountTypeField = pdf.Form.FindFormField("accountType")
accountTypeField.Value = "business"
' Set dropdown selection to one of its defined options
Dim departmentField = pdf.Form.FindFormField("department")
departmentField.Value = "Engineering"
' Save the completed form
pdf.SaveAs("completed-application.pdf")
FindFormField 根據表單建立期間指派的名稱定位欄位。 欄位名稱的比對區分大小寫且需完全相符——"applicantName"與"ApplicantName"屬於不同的欄位。 如果您正在填寫第三方表單,並且不確定欄位名稱,請遍歷 pdf.Form 以列印每個欄位的名稱,然後再嘗試按名稱填寫。
輸入

輸出

不同的欄位類型需要相應的數值格式。 文字欄位接受任何字串。 核取方塊接受"是"或"否"。 單選按鈕接受所需選項的字串值。 下拉選單僅接受已定義選項之一的字串值——若設定選項清單中未包含的值,將無效。
處理具有許多欄位的表單時,直接遍歷 pdf.Form,而不是重複呼叫 FindFormField。 對於大量操作而言,迭代更為高效,且可避免反覆對字段集合進行線性搜尋。
如何讀取並擷取表單欄位資料?
從已提交的 PDF 中提取表單資料屬於反向操作:載入已填寫的表單,然後讀取每個欄位的名稱與當前值,以供後續處理。 此模式驅動自動化資料接收工作流程,使用者只需填寫 PDF 表單並上傳,應用程式便會自動處理資料,無需手動輸入。
using IronPdf;
// Load the completed, submitted PDF form
PdfDocument pdf = PdfDocument.FromFile("submitted-form.pdf");
// Iterate all fields to extract names, values, and types
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 the completed, submitted PDF form
PdfDocument pdf = PdfDocument.FromFile("submitted-form.pdf");
// Iterate all fields to extract names, values, and types
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})");
Imports IronPdf
' Load the completed, submitted PDF form
Dim pdf As PdfDocument = PdfDocument.FromFile("submitted-form.pdf")
' Iterate all fields to extract names, values, and types
Console.WriteLine("Form Data Extraction:")
Console.WriteLine("----------------------")
For Each field In pdf.Form
Console.WriteLine($"Field: {field.Name}")
Console.WriteLine($"Value: {field.Value}")
Console.WriteLine($"Type: {field.GetType().Name}")
Console.WriteLine()
Next
' Or retrieve specific fields for targeted processing
Dim customerName As String = If(pdf.Form.FindFormField("applicantName")?.Value, "Not provided")
Dim customerEmail As String = If(pdf.Form.FindFormField("email")?.Value, "Not provided")
Console.WriteLine($"Customer: {customerName} ({customerEmail})")
Form 屬性公開文件中所有欄位的可枚舉集合。 每個字段物件提供其 Name、當前 Value 和類型資訊。 通用表單處理器採用此模式,可處理任何 PDF 表單結構,無需硬編碼欄位名稱。
輸出

空條件運算子 ?. on FindFormField 處理預期欄位缺失的情況 - 在處理來自多個來源的表單時非常有用,這些表單可能具有略微不同的欄位結構。 請務必提供備用值或進行 null 檢查,切勿預設該欄位必然存在。
擷取的資料可直接與 Entity Framework 或 ADO.NET Framework 整合,用於資料庫寫入,並透過 JSON 序列化處理 API 回應,以及生成 CSV 檔案用於報表。 若您還需從掃描或圖像形式的表單提交中擷取資料(其中欄位並非以數位方式填寫),請將 IronPDF 與 IronOCR 搭配使用。
如何大規模生成個人化表單?
PDF 表單自動化的最常見應用場景是批次生成——從資料庫、API 或 CSV 檔案預先填入資料,以產生數百或數千份表單。透過簡單的迴圈即可處理此任務,無需任何額外基礎架構。
using IronPdf;
// Retrieve customer records from your data source
var customers = GetCustomersFromDatabase();
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
foreach (var customer in customers)
{
// Build an HTML template with static data pre-filled and interactive fields for user input
string formHtml = $@"
<html><body>
<h2>Annual Review Form</h2>
<p>Customer: {customer.Name}</p>
<p>Account: {customer.AccountNumber}</p>
<label>Satisfaction Rating (1-5):</label><br/>
<input type='text' name='rating' maxlength='1'><br/>
<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;
// Retrieve customer records from your data source
var customers = GetCustomersFromDatabase();
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
foreach (var customer in customers)
{
// Build an HTML template with static data pre-filled and interactive fields for user input
string formHtml = $@"
<html><body>
<h2>Annual Review Form</h2>
<p>Customer: {customer.Name}</p>
<p>Account: {customer.AccountNumber}</p>
<label>Satisfaction Rating (1-5):</label><br/>
<input type='text' name='rating' maxlength='1'><br/>
<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");
}
Imports IronPdf
' Retrieve customer records from your data source
Dim customers = GetCustomersFromDatabase()
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
For Each customer In customers
' Build an HTML template with static data pre-filled and interactive fields for user input
Dim formHtml As String = $"
<html><body>
<h2>Annual Review Form</h2>
<p>Customer: {customer.Name}</p>
<p>Account: {customer.AccountNumber}</p>
<label>Satisfaction Rating (1-5):</label><br/>
<input type='text' name='rating' maxlength='1'><br/>
<label>Feedback:</label><br/>
<textarea name='feedback' rows='5' style='width:100%'></textarea>
</body></html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(formHtml)
pdf.SaveAs($"review-form-{customer.AccountNumber}.pdf")
Next
該 HTML 範本會直接嵌入靜態客戶資料,因此收件者會看到預先印好的姓名和帳號,並提供互動式欄位供其填入所需資料。 批次處理數百筆記錄僅需數秒即可完成,相較於手動準備所需的數小時,效率大幅提升。
此迴圈結構適用於任何資料來源:Entity Framework 查詢、API 回應或 CSV 匯入。 每次迭代都會產生一份針對該記錄量身訂製、完整且可直接分發的 PDF 檔案。 對於高吞吐量場景,使用 async/await 與 Task.WhenAll 並行渲染表單 - IronPDF 的 RenderHtmlAsPdfAsync 方法支援完全非同步渲染。
批次生成後,表單通常會透過 IronZIP 打包成 ZIP 壓縮檔以供分發,或透過電子郵件整合功能發送、上傳至雲端儲存空間,或轉送至電子簽名平台以完成簽署流程。
如何在填寫完畢後將 PDF 表單"扁平化"或"鎖定"?
當表單完全填寫並通過驗證後,通常需要將其鎖定,以防止值被進一步編輯。 "扁平化"功能會將所有互動式表單欄位轉換為靜態、不可編輯的視覺內容,同時完整保留已填寫表單的外觀。
using IronPdf;
// Load a completed, signed form
PdfDocument pdf = PdfDocument.FromFile("completed-application.pdf");
// Flatten all form fields - converts interactive fields to static content
pdf.Form.Flatten();
// Save the locked, non-editable version
pdf.SaveAs("locked-application.pdf");
using IronPdf;
// Load a completed, signed form
PdfDocument pdf = PdfDocument.FromFile("completed-application.pdf");
// Flatten all form fields - converts interactive fields to static content
pdf.Form.Flatten();
// Save the locked, non-editable version
pdf.SaveAs("locked-application.pdf");
Imports IronPdf
' Load a completed, signed form
Dim pdf As PdfDocument = PdfDocument.FromFile("completed-application.pdf")
' Flatten all form fields - converts interactive fields to static content
pdf.Form.Flatten()
' Save the locked, non-editable version
pdf.SaveAs("locked-application.pdf")
"扁平化"是歸檔已填妥表單、生成符合 PDF/A 標準的文件以供長期儲存,以及製作最終副本供分發的正確方法。 經過扁平化處理後,表單資料仍可見,但無法進行修改。 PDF 扁平化指南涵蓋了其他扁平化選項,包括選擇性欄位扁平化。
對於需要具法律約束力的完成情境,IronPDF 亦支援數位簽名,透過加密技術將簽署者的身分與文件綁定。 數位簽章與表單扁平化各有其用途——簽章用於驗證真實性,扁平化則用於防止竄改。
下一步計劃是什麼?
.NET Core 中的 PDF 表單涵蓋四項核心操作:從 HTML 或透過 API 建立表單、從資料來源填寫現有表單、擷取已提交的資料,以及大規模批次產生個人化副本。 IronPDF 透過一致的 API 處理這四項功能,相同的程式碼可在 Windows、Linux、macOS 以及容器環境中運行。
《建立 PDF 表單》操作指南涵蓋了所有可用的欄位類型,並附有程式碼範例。 《表單填寫與編輯指南》將深入探討批次欄位更新、單選按鈕群組以及下拉式清單的處理方式。 IronPDF 文件中心提供完整的 API 參考指南及進階主題,包括多頁表單、表單欄位驗證,以及針對高流量處理流程的效能調校。
立即開始免費試用,在您的專案中探索 PDF 表單功能,或查看生產環境部署的授權選項。

常見問題解答
IronPDF使用的是什麼PDF表單標準?
IronPDF創建和讀取AcroForms——這是從1998年PDF規範中定義的交互式表單標準。AcroForms得到Adobe Reader、基於瀏覽器的PDF查看器和移動應用的支持,而較舊的XFA格式則兼容性有限。
如何在IronPDF中啟用從HTML創建表單字段?
在調用`RenderHtmlAsPdf`之前設置`renderer.RenderingOptions.CreatePdfFormsFromHtml = true`。如果沒有此標誌,HTML表單元素將被渲染為靜態的視覺內容,而非交互式AcroForm字段。
如何填寫現有PDF表單中的特定字段?
使用`PdfDocument.FromFile`加載PDF,調用`pdf.Form.FindFormField("fieldName")`檢索字段對象,然後將字符串分配給其`Value`屬性。字段名稱匹配是區分大小寫的。使用`pdf.SaveAs`保存結果。
如何從提交的PDF中提取所有表單字段值?
使用`foreach (var field in pdf.Form)`迭代`pdf.Form`,並閱讀每個字段的`Name`和`Value`屬性。對於有針對性的提取,使用`pdf.Form.FindFormField("name")?.Value`與空條件運算符安全地處理缺失的字段。
IronPDF可以在迴圈中從數據庫生成數百個表單嗎?
可以。創建一個設置了`CreatePdfFormsFromHtml = true`的`ChromePdfRenderer`,迭代您的數據記錄,為每個記錄構建HTML字符串,調用`RenderHtmlAsPdf`,並保存每個結果。為了提高吞吐量,使用`RenderHtmlAsPdfAsync`與`Task.WhenAll`進行並行渲染。
PDF表單平整化是什麼?
平整化將所有交互式表單字段轉換為靜態不可編輯的視覺內容,同時保留填寫表單的精確外觀。調用`pdf.Form.Flatten()`然後保存。這樣的結果適合存檔、PDF/A合規以及要求防止字段編輯的分發。
IronPDF可以在Linux和Docker容器中運行嗎?
可以。IronPDF可以運行在Windows、Linux、macOS、Docker和Kubernetes上。同樣的C#代碼可以在所有平台上生成相同的PDF輸出。請參閱文件中的IronPDF Linux和Docker指南以獲取平台特定的配置。
IronPDF支持哪些平台和.NET版本的PDF表單?
IronPDF支持.NET Framework 4.6.2及以上,和所有現代.NET版本,包括.NET 6、.NET 7、.NET 8、.NET 9和.NET 10。它還支持ASP.NET、ASP.NET Core、Blazor Server、Azure Functions和MAUI應用。



