# # PDF 表单基础概念介绍

本章节将介绍 PDF 表单的基础概念，并展示如何使用 Foxit PDF SDK for Web 提供的 API 来实现表单的基本操作。

## # PDF 表单简介

PDF 表单是一种特殊类型的 PDF 文档，其包含了可以输入文本信息或选取复选框的交互式字段。。您可以从任何 PDF、文字处理器、图像文件或纸质文档创建 PDF 表单。

在 Foxit PDF SDK for Web 中，我们将 PDF 表单根据其结构关系划分为三大对象：Form、Field 和 Widget，分别对应于 PDF 文档中的表单、字段和表单域。

- Form 的类名为 `PDFForm`, 使用 PDFDoc.getForm()
  (opens new window) 方法获取其实例。

- Field 的类名为 `PDFFormField`，使用 PDFForm.getField
  (opens new window) 和 PDFForm.getFieldAtPosition
  (opens new window) 方法获取其实例。

- Widget 的类名为 `Widget`，使用 PDFFormField.getWidgetsCount
  (opens new window) 和 PDFFormField.getWidget
  (opens new window) 方法获取其实例。请注意，Widget 是一种特殊的注解（Annot），也可以通过 `PDFPage` 的 getAnnots
  (opens new window) 方法获取，但是需要根据类型进行过滤。

需要特别强调的是，签名字段是一种特殊的字段类型，采用了一个独立的类 PDFSignature
(opens new window)。`PDFSignature` 继承自 PDFFormField
(opens new window)，并增加了一些与签名相关的接口。

以下图表可以用来表示这些对象之间的关系：

## # Foxit PDF SDK for Web 提供的表单功能

您可以使用 Foxit PDF SDK for Web 提供的 API 来执行以下的表单操作：

- 添加或删除表单字段
- 获取或设置表单字段属性
- 导入导出表单数据
- 添加和编辑表单动作

此外，您还可以通过添加 Action 来扩展表单功能，例如，使用 Action 来执行以下任务：

- 开发 JavaScript 脚本，为用户事件实现定制操作
- 自动格式化、计算和验证表单数据
- 实现与 Web 服务的交互

这些功能为开发者在构建复杂且交互性强的 PDF 表单应用时提供了强大的工具，这些应用适用于各种场景，例如在线调查、申请表、订单表等。