# Acrobat 可填写PDF表单：先用AI列字段契约，再做单选组、必填与Tab顺序

空表含10个真实字段，mode是一个radio父字段、两个子控件，camera/light是独立多选。已填版与扁平版分开；作者扁平打印参考为实际渲染后的栅格副本，文字不可选，交互版另存。键盘Tab走查不能仅靠字段JSON证明。

## 文件身份

所有人物、组织、数值为原创虚构教学资料。作者本地原生参考不代表目标SaaS实测；本题未登录目标账号、购买权益、调用付费API、发送评论/邀请或写主日历。

## 七步操作

1. 让AI列出十项字段契约

阅读静态两页PDF和任务书，让AI输出10项字段契约，未知项保持待确认。

2. 人工确定字段类型与必填

人工核对稳定字段名、文本/下拉/单选组/复选框类型和必填范围，先修契约再开表单。

3. 在Prepare a form创建控件

在Acrobat选择Prepare a form，检查自动识别并按契约添加或更正真实控件。

4. 把互斥选项放进同一radio组

将互斥选项设为同一radio组和不同导出值，独立偏好设checkbox，避免全变成复选。

5. 在Preview用键盘检查顺序

设置必填与Tab顺序，在Preview中仅用键盘从第一页走到第二页。

6. 另存可填写与扁平副本

填测试数据并保存可编辑副本，再生成独立扁平打印参考，原空表不覆盖。

7. 同时核对字段树与页面外观

用字段树和阅读器双验10字段、类型、必填标志及值；扁平版无交互控件且视觉保留。

## 独立验证

在复制的目录运行 `python3 -B verify.py`。需要Python3，PDF验证依赖pypdf、原生表格只读检查依赖openpyxl，文档用标准库读取OOXML。教材的本地HTML查看器直接在浏览器打开，不需要连接第三方服务。

## 原生文件

- registration-fillable-reference.pdf
- registration-filled-test.pdf
- registration-flat-reference.pdf
- registration-static.pdf

## 验收

- 原生AcroForm字段名、类型、radio互斥关系和必填标志与契约一致。
- Tab顺序需要真实阅读器键盘走查；JSON清单或截图不能证明已能键盘操作。
- 可填写版仍有控件，扁平版仅为打印副本；两页文字和选中外观保留。

## 账户与功能依据

- Adobe：创建与处理 PDF 表单 https://helpx.adobe.com/acrobat/using/pdf-forms.html
- Adobe：Prepare a form 创建流程 https://helpx.adobe.com/uk/acrobat/desktop/work-with-pdf-forms/create-forms/create.html
- Anthropic：Claude 创建与编辑文件 https://support.claude.com/en/articles/12111783-create-and-edit-files-with-claude
