自动 XFA 选项与布尔创建
Unit: HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF 消费实际 XFA 布局,在无预置 PDF 槽位的情况下构建选项字段、复选框 widget 以及单选父级与成员
选项字段
combo 与 list 字段使用原生 /FT /Ch 字典;分离的 XFA 显示与保存列表成为 /Opt 导出/显示对,保留 Unicode、分隔符、显式空导出、类型化标量项和导出值两侧空白
可编辑 combo 保留其自由文本值;不可编辑选项要求所选导出存在于其选项列表中
多选值成为按选项顺序排列的有序原生 /V 数组和匹配的 /I 索引;普通的仅值输入使用换行分隔的导出,并在准备期间拒绝重复的选中值
Choice 条目脚本化经由保存的 XDP 为重复导出和空导出保留精确的显式索引,因此其 PDF /I 数组、导出的 /V 值和显示标签外观都不会有歧义
重复选择验证比较精确字符串,不重排编写的选择列表;唯一性验证全程用索引堆排序替代二次配对比较,并持续检查取消
选项外观文本使用显示标签,/V 使用导出值;list appearances 包含测量出的可见窗口和第一个选中项、精确 /TI 顶部索引以及相对选中行高亮,同时保留完整选项图
原生 combo、edit、multi-select、selection-commit 和 readOnly 标志使用精确 PDF 整数令牌,高位标志不会抹掉 readOnly 位
复选框与单选状态
复选框包含真实的 Off 和 on 状态 Form XObject;Boolean styles and captions 消费真实标记形状、尺寸、UI 轮廓、字段颜色、标量 Unicode caption 和第三复选框状态,不依赖所提供字体中的对勾字符
原生 /Opt 保留 XFA 导出值;保留导出 Off 和以 XFAOn 开头的导出获得无冲突的活动状态别名,而其实际导出字符串在 /Opt 中保持不变
单选成员按模板 exclusion-group 路径和原生数据上下文路径共享一个原生父级;重复组获得独立的 /Kids、/V、/Opt 和 widget /AS 状态,即使显示的组名相同
同一单选组内的相同导出设置 RadiosInUnison 并激活每个对应成员;文档级编辑策略与 exclusion-group 访问决定父级 readOnly 标志
exclusion-group 的 tb 和 lr-tb 布局随当前原生数据作用域派发,定位式 exclusion group 把自己的 x/y 原点应用到其成员
运行时持久化与准备
exclusion-group 的 rawValue 读取与赋值参与既有原生事件事务、绑定单元格、表单/数据同步和回滚;保存的运行时 XDP 可直接交给自动创建器
验收 fixture 修改第二个重复 combo、复选框和 exclusion group,立即通过其数据别名读取该组,保存 XDP,并在保留第一实例的前提下独立验证结果 PDF 的值、状态和外观
所有候选准备失败保留目标字节、长度和位置;选项数组、字段名、布尔导出、widget 计数、图分配和聚合外观文本保留既有资源限制
目标 I/O 失败保留 Automatic XFA creation 描述的调用方流边界
剩余消费者工作
富 caption、折行 caption 尺寸、按 edge 与填充轮廓样式、后续 widget 状态提交、后续交互式 list 滚动、多选空行歧义、动态选项项方法、高级 exclusion-group 布局和签名字段仍是独立集成工作
Choice metadata 记录这些原生消费者使用的增量回调提示