自动 XFA 布尔样式与说明文字
Units: HPDFXFA 与 HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF 消费生效的 checkButton 属性,从实际 XFA 布局创建原生复选框和单选外观流
标记与轮廓
checkButton 的 size 默认 10pt,控制在字段内容区域内的方形标记区域;显式 size 度量、字段与 UI 边距以及段落的水平垂直对齐共同决定其位置
square 和 round 形状决定轮廓;默认断言标记在方形轮廓下为叉号、圆形轮廓下为实心圆,遵循 XFA 3.3 checkButton specification
显式的 check、circle、cross、diamond、square 和 star 标记使用真实矢量路径;它们不依赖所提供字体里是否包含复选框符号
第一个 UI 边框 edge 提供其粗细、颜色和可见性;默认轮廓为黑色、宽 0.5pt,断言标记颜色取自字段生效的字体颜色
当配置的 size 超过剩余内容区域时,标记收缩到该区域内;caption 或 margin 导致没有内容区域时,候选准备失败
标量 Unicode 说明文字
标量 caption 文本按原样保留 Unicode 和分隔符,成为真实嵌入字体的 Form XObject,被该 widget 的所有 off、on 和 neutral 外观引用
caption 在其各状态间共享同一外观和字体图,其 UTF-16 单元在每个 widget 中只在 TXFAHeadlessPDFResult.GlyphUnits 中计一次
left 和 right 预留 caption 宽度,top 和 bottom 预留高度;省略或为零的 reserve 使用所提供字体实际的 glyph advance 和行度量来计算 caption 的自然尺寸
inline caption 位于标记之前并忽略显式 reserve;caption 边距把文本缩进其分配的区域内
caption 的字体大小与填充色覆盖字段的大小与颜色;caption 段落对齐覆盖字段对齐,而 CaptionFontFamilies 可以提供真实的样式字体和命名字族
hidden 和 inactive caption 不占用区域、不分配字体图;invisible caption 保留其区域但不绘制、不计入 caption glyph
富 caption 消费者还会消费生效的 XHTML、真实配置的样式字体与字族选择、混合行度量和折行后的 caption 高度
第三复选框状态
启用 allowNeutral 时,第三个保存项是 neutral 复选框导出;匹配的值保留各自独立的原生 /V 和 widget /AS,并有对应的 /AP /N 条目
neutral 外观绘制空轮廓和同一段 caption;不绘制断言标记
复选框 /Opt 数组按 PDF 按钮字段模型的要求,为其唯一的 widget 保留一个 on 导出条目;第三个保存外观状态不会添加第二个 widget 选项
空导出、保留的 Off 名称以及以 XFAOn 开头的名称会获得无冲突的原生状态别名,规则是把其 UTF-8 字节作为大写十六进制接在 XFAOn 之后;第三个原始导出可以从保存的状态名恢复
单选成员忽略第三项,保留其既有的两态外观字典和模板/数据作用域组标识
适配器持久化初始状态图;应用此后执行的原生按钮编辑操作遵循其自身的状态与外观契约
原生实例属性与事务
checkButton 的 size、shape、mark 和 allowNeutral 默认值可通过原生运行时 schema 获得;缺失的 checkButton border 和 margin 属性可通过既有属性事务创建
生效的重复实例 checkButton、caption、font 和 margin 属性在 SaveToBytes 后保留,并立即控制对应的自动创建 PDF widget;第一个重复实例保留其独立属性
字面 UTF-8 事件源与 Unicode 绑定值在保存的 XDP 转换之前保留其标量,包括被原生 JavaScript 事件修改过的 caption 文本;参见 HPDFXFAExecuteJavaScriptEvent
脚本失败在创建前恢复精确的原生 XML,准备失败保留目标位置、长度和字节;glyph、对象和字体预算以及取消沿用 自动创建器的事务边界
验收来源
Tests/Linux/XFAHeadlessBooleanStylesTests.pas 在无阅读器 UI 的情况下产出真实的标记对、caption、neutral 与保留状态、重复实例脚本变更和回滚用例
Tests/Linux/Verify-XFAHeadlessBooleanStyles.py 用 pypdf 和 MuPDF 检查实际保存的状态字典、共享字体资源、caption 位置、Unicode 文本和可区分的标记像素
Boolean 回调元数据描述原生创建器消费的增量传输提示