Skip to content

表单

福昕 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 参考

FSFormFSFieldFSControl 的完整接口说明请参阅 API 手册