IRONSOFTWAREHOME
使用IRONPDF

using C# 中的 iTextSharp 和 IronPDF 在 PDF 中添加页眉和页脚(附示例

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

交互式 PDF 表单可将静态文档转化为数据收集工具,您完全可以通过代码生成和处理这些表单。 无论是构建患者登记门户、自动化贷款申请,还是从数据库中生成数千份预填好的合规表格,IronPDF 都为 .NET 开发人员提供了一个统一且一致的 API,用于处理所有表单任务——包括表单创建、字段填充、数据提取和批量处理。

本指南将通过可直接复制到 .NET 10 项目中的 C# 代码示例,逐一讲解上述各项任务。

PDF Forms .NET SDK: 使用IronPDF在C#中创建可填写的PDF:图像 1 - IronPDF

如何开始使用 IronPDF?

IronPDF 可在 NuGet 上获取,将其添加到任何 .NET 项目中仅需约一分钟。 在 Visual Studio 中打开软件包管理器控制台并运行:

PM > Install-Package IronPdf

您也可以在NuGet包管理器GUI中搜索IronPDF,或者通过.NET CLI添加它,使用 dotnet add package IronPdf。 无需额外的运行时依赖项或配置文件——该库自带在 Windows、Linux、macOS、Docker 和 Kubernetes 上渲染 PDF 所需的一切。

PDF Forms .NET SDK: 使用IronPDF在C#中创建可填写的PDF:图像 3 - 安装

该包针对.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> 成为一个下拉列表,<textarea> 成为一个多行文本字段。

通过在渲染器的CreatePdfFormsFromHtml = true以启用表单创建。 如果没有该标记,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");

每个HTML输入的name属性成为PDF中的字段名称。 该名称即您后续在通过编程方式读取或写入字段值时所使用的名称。 选择与数据模型相匹配的名称——如果您打算从数据库对象中填充此表单,请根据对象的属性来命名字段。

输出

PDF Forms .NET SDK: 使用IronPDF在C#中创建可填写的PDF:图像 4 - PDF输出

textinput 和 textarea 元素将渲染为可编辑的文本输入框。 具有相同name属性的单选按钮组合在一起,因此只能选择一个。 复选框将呈现为可切换的控件。 生成的 PDF 文件可在任何标准阅读器中打开,且所有表单字段均可直接填写。

当表单设计已作为网页存在、您的团队更倾向于以标记语言维护表单,或者您需要生成与应用程序现有 HTML 模板完全匹配的表单时,这种基于 HTML 的方法效果显著。 渲染器负责处理所有 PDF 规范的细节。

PDF Forms .NET SDK: 使用IronPDF在C#中创建可填写的PDF:图像 5 - 功能

如何通过编程方式向 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");

TextFormField创建一个单行文本输入。 CheckboxFormField放置一个可切换的复选框。 ComboboxFormField创建一个限制为所提供选项列表的下拉菜单。每个类公开额外的属性,用于设置选项卡顺序、工具提示文本、只读状态和必填字段标志。

HTML 转换和编程方式创建字段这两种方法可以结合使用。 从 HTML 生成基础布局以实现高效的模板控制,随后通过 API 添加定位精确的专用字段。 《表单填写与编辑指南》涵盖了所有可用的字段类型。

PDF Forms .NET SDK: 使用IronPDF在C#中创建可填写的PDF:图像 6 - PDF Forms .NET SDK - IronPDF

如何填写现有的 PDF 表单?

许多工作流程都始于现成的 PDF 表单——可能是政府模板、供应商合同,或是贵组织从合作伙伴处收到的标准化申请表。 通过编程方式填写这些表单,可实现文档生成的自动化,而无需重新设计原始布局。

使用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");

FindFormField通过表单创建期间分配的名称定位字段。 字段名匹配区分大小写且要求完全一致——"applicantName" 和 "ApplicantName" 属于不同的字段。 如果您正在填写第三方表单并不确定字段名称,遍历pdf.Form以打印每个字段的名称,然后再尝试按名称填写。

输入

PDF Forms .NET SDK: 使用IronPDF在C#中创建可填写的PDF:图像 7 - 示例PDF输入

输出

PDF Forms .NET SDK: 使用IronPDF在C#中创建可填写的PDF:图像 8 - 填写的PDF输出

不同的字段类型需要相应的值格式。 文本字段接受任何字符串。 复选框接受"是"或"否"。单选按钮接受所选选项的字符串值。 下拉菜单仅接受已定义选项中的某个字符串值——设置选项列表中不存在的值将无效。

在处理具有许多字段的表单时,直接遍历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})");

Form属性公开文档中所有字段的可枚举集合。 每个字段对象提供其Value和类型信息。 通用表单处理器采用此模式,无需硬编码字段名称即可处理任何 PDF 表单结构。

输出

PDF Forms .NET SDK: 使用IronPDF在C#中创建可填写的PDF:图像 9 - 控制台输出

在?.来处理缺少预期字段的情况 - 这在处理可能有略微不同字段结构的多个来源的表单时非常有用。 请务必提供备用值或进行空值检查,切勿默认字段存在。

提取的数据可直接与 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");
}

该 HTML 模板直接嵌入了静态客户数据,因此收件人会看到预先打印好的姓名和账号,同时还提供了用于填写所需数据的交互式字段。 批量处理数百条记录仅需数秒即可完成,而手动准备则需要数小时。

该循环结构适用于任何数据源:Entity Framework 查询、API 响应或 CSV 导入。 每次迭代都会生成一份针对该记录定制的完整、可直接分发的 PDF 文件。 对于高吞吐量场景,使用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");

"扁平化"是归档已填写表单、生成符合 PDF/A 标准的长期存储文档以及制作最终分发副本的正确方法。 扁平化处理后,表单数据仍然可见,但无法修改。 PDF 扁平化指南涵盖了其他扁平化选项,包括选择性字段扁平化。

对于需要具有法律约束力的场景,IronPDF 还支持数字签名,该功能通过加密技术将签名者的身份与文档绑定。 数字签名和表单扁平化具有不同的用途——签名用于验证真实性,而扁平化则用于防止篡改。

下一步计划是什么?

.NET Core 中的 PDF 表单涵盖四项核心操作:通过 HTML 或 API 创建表单、从数据源填充现有表单、提取已提交的数据,以及大规模批量生成个性化副本。 IronPDF 通过统一的 API 处理这四项功能,同一套代码可在 Windows、Linux、macOS 以及容器环境中运行。

《创建 PDF 表单》操作指南通过代码示例详细介绍了所有可用的字段类型。 《表单填写与编辑指南》对批量字段更新、单选按钮组以及列表框的处理进行了更深入的讲解。 IronPDF 文档中心提供了完整的 API 参考以及高级主题,包括多页表单、表单字段验证以及针对高吞吐量管道的性能调优。

立即开始免费试用,在您的项目中探索 PDF 表单功能,或查看用于生产部署的许可选项。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥。

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999 起