You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pdfium库创建FPDF_FORMFIELD系列表单域?

使用Pdfium创建各类表单域的方法

在Pdfium中,Widget注释是表单域的可视化载体,要创建具体类型的表单域,需要将Widget注释与对应的表单域对象关联,核心流程及示例如下:

核心步骤

  1. 创建FPDF_ANNOT_SUBTYPE_WIDGET类型的注释作为可视化载体;
  2. 调用FPDFForm_CreateField创建指定类型的表单域对象;
  3. 用FPDFAnnot_SetFormField将注释与表单域绑定;
  4. 根据域类型设置对应属性。

具体实现示例

1. 创建文本框(FPDF_FORMFIELD_TEXTFIELD)

// 假设已获取文档句柄doc和页面句柄page
FPDF_ANNOTATION text_widget = FPDFPage_CreateAnnot(page, FPDF_ANNOT_SUBTYPE_WIDGET, 50, 700, 250, 750);
FPDF_FORMFIELD text_field = FPDFForm_CreateField(doc, FPDF_FORMFIELD_TEXTFIELD, "user_name");

// 关联注释与表单域
FPDFAnnot_SetFormField(text_widget, text_field);

// 设置文本框属性
FPDFFormField_SetText(text_field, "请输入姓名"); // 设置默认提示文本
FPDF_SetFormFieldHighlightColor(text_field, 255, 255, 200); // 设置高亮背景色

2. 创建复选框(FPDF_FORMFIELD_CHECKBOX)

FPDF_ANNOTATION checkbox_widget = FPDFPage_CreateAnnot(page, FPDF_ANNOT_SUBTYPE_WIDGET, 50, 600, 80, 630);
FPDF_FORMFIELD checkbox_field = FPDFForm_CreateField(doc, FPDF_FORMFIELD_CHECKBOX, "agree_terms");

FPDFAnnot_SetFormField(checkbox_widget, checkbox_field);

// 设置复选框初始状态为选中
FPDFFormField_SetCheckState(checkbox_field, FPDF_FORMFIELD_CHECKED);

3. 创建单选按钮(FPDF_FORMFIELD_RADIOBUTTON)

单选按钮需设置相同域名归为同一组,同一组内仅能选中一个选项:

// 第一个单选按钮(默认选中)
FPDF_ANNOTATION radio1_widget = FPDFPage_CreateAnnot(page, FPDF_ANNOT_SUBTYPE_WIDGET, 50, 500, 80, 530);
FPDF_FORMFIELD radio1_field = FPDFForm_CreateField(doc, FPDF_FORMFIELD_RADIOBUTTON, "gender");
FPDFAnnot_SetFormField(radio1_widget, radio1_field);
FPDFFormField_SetRadioButtonValue(radio1_field, "male");
FPDFFormField_SetCheckState(radio1_field, FPDF_FORMFIELD_CHECKED);

// 第二个单选按钮
FPDF_ANNOTATION radio2_widget = FPDFPage_CreateAnnot(page, FPDF_ANNOT_SUBTYPE_WIDGET, 100, 500, 130, 530);
FPDF_FORMFIELD radio2_field = FPDFForm_CreateField(doc, FPDF_FORMFIELD_RADIOBUTTON, "gender");
FPDFAnnot_SetFormField(radio2_widget, radio2_field);
FPDFFormField_SetRadioButtonValue(radio2_field, "female");

关键注意事项

  • 表单域的域名(FPDFForm_CreateField第三个参数)用于标识域,单选按钮同组必须使用相同域名;
  • 不同类型的表单域对应不同的属性设置API,比如文本框用FPDFFormField_SetText,单选按钮用FPDFFormField_SetRadioButtonValue;
  • 完成所有设置后,需调用FPDF_SaveAsCopy或FPDF_SaveWithVersion保存文档,确保表单域生效。

内容的提问来源于stack exchange,提问作者OM PRAKASH SEERVI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:03:20