表单
福昕 PDF SDK iOS 版通过 Core SDK 提供了 PDF 表单(AcroForm)的读取、填写、导入/导出和表单字段管理能力。
UI Extensions 内置表单功能
如果您使用的是完整阅读器(UI Extensions),表单填写功能已内置,用户可直接在 UI 中填写文本框、选择复选框和单选按钮等表单控件,无需额外编码。
核心类
| 类 | 说明 |
|---|---|
FSForm | 表单对象,管理文档中的所有交互式表单字段 |
FSField | 表单字段(文本框、复选框、单选按钮、列表框、下拉框等) |
FSControl | 表单控件,表示字段在页面上的外观和交互实例 |
字段类型常量
| 常量 | 说明 |
|---|---|
FSFieldTypeUnknown | 未知类型 |
FSFieldTypePushButton | 按钮 |
FSFieldTypeCheckBox | 复选框 |
FSFieldTypeRadioButton | 单选按钮 |
FSFieldTypeComboBox | 下拉框 |
FSFieldTypeListBox | 列表框 |
FSFieldTypeTextField | 文本框 |
FSFieldTypeSignature | 签名域 |
示例:读取和填写表单字段
objc
#import <FoxitRDK/FSPDFObjC.h>
FSPDFDoc *doc = [[FSPDFDoc alloc] initWithPath:@"path/to/form.pdf"];
[doc load:nil];
BOOL hasForm = [doc hasForm];
if (!hasForm) return;
FSForm *form = [[FSForm alloc] initWithDocument:doc];
// 遍历所有字段
int fieldCount = [form getFieldCount:@""];
for (int i = 0; i < fieldCount; i++) {
FSField *field = [form getField:i filter:@""];
NSString *name = [field getName];
FSFieldType type = [field getType];
NSString *value = [field getValue];
NSLog(@"字段: %@, 类型: %d, 值: %@", name, (int)type, value);
}
// 设置文本字段值
FSField *textField = [form getField:0 filter:@""];
[textField setValue:@"填写的内容"];
[doc saveAs:@"path/to/output.pdf" saveFlags:FSPDFDocSaveFlagNormal];
示例:导入和导出表单数据
objc
FSForm *form = [[FSForm alloc] initWithDocument:doc];
// 导出为 XML
BOOL exported = [form exportToXML:@"path/to/formdata.xml"];
// 从 XML 导入
BOOL imported = [form importFromXML:@"path/to/formdata.xml"];
[doc saveAs:@"path/to/output.pdf" saveFlags:FSPDFDocSaveFlagNormal];
API 参考
FSForm、FSField、FSControl 的完整接口说明请参阅 API 手册。