原生 XFA UI 属性覆盖

Units: HPDFXFA、HPDFXFARuntime 与 HPDFXFAEventScript

创建与选项组

受支持的字段和 draw UI 节点暴露 extras 与 picture,外加一个互斥 widget 选项:barcode、button、checkButton、choiceList、dateTimeEdit、defaultUi、imageEdit、numericEdit、passwordEdit、signature 或 textEdit

每个子节点基数为一;getElement 和直接属性访问在实际表单 occurrence 之下物化受支持的缺失属性,共享原生创建预算与事务回滚

const row = xfa.form.resolveNode("main.row[1]");
row.input.ui.textEdit.multiLine = "1";
row.input.ui.textEdit.hScrollPolicy = "off";
row.password.ui.passwordEdit.hScrollPolicy = "off";
row.selection.ui.choiceList.open = "multiSelect";
row.selection.ui.choiceList.commitOn = "select";

创建冲突的 widget 选项会使事件事务失败;extras 与 picture 保持元数据身份,选择生效 UI widget 时被跳过

默认值与受支持子路径

UI、passwordEdit、choiceList 和 checkButton 暴露常见的 id、use 和 usehref schema 属性

passwordEdit 默认 hScrollPolicy=auto 和 passwordChar=*;choiceList 默认 open=userControl、textEntry=0 和 commitOn=select

passwordEdit、choiceList 和 checkButton 支持 border、extras 和 margin 子节点;textEdit 保留其 border、comb、extras 和 margin 路径及既有上下文默认值

checkButton 默认 size=10pt、shape=square、mark=default 和 allowNeutral=0;automatic native Boolean creation 消费生效的每实例标记、边框和标量 caption 属性

setAttribute(value, name) 仍可用于显式的额外属性;更多 widget 类默认值与子 schema 仍是独立目标

实际运行时与 flatten 消费者

事件成功后,运行时为每个重复 occurrence 从生效 UI 重建 widget 类型;创建的 textEdit、passwordEdit 和 choiceList 节点成为真实的文本、密码和 list/combo 控件

字段 flatten 使用同一生效 UI 选择,包括原生表单专属 UI,或添加到空模板 UI 或仅含元数据模板 UI 的 widget 选项

UI 属性驱动实际 PDF 字段标志,包括多行与禁止滚动文本、密码掩码、多选和 select 即提交;已声明 item 选项和当前绑定值保持关联

其他重复实例保留其先前 UI 与值;保存的 XDP 重载和后续事件继续解析创建的原生 UI 属性节点

保存的文本外观

启用 AutoFormAppearances 时,XFA 多行文本外观尊重显式 LF、CR 和 CRLF 分隔并逐行摆放

对受支持的单字节文本,折行按生效的标准字族和大小测量;宽于控件的单词被拆分为测量可容纳的前缀,生成外观保留全部文本字符

每个输出行消费其生效的左、中或右对齐以及既有原生裁剪矩形

覆盖范围

schema 创建本身不会为每个 widget 选项补齐缺失消费者;专用的 image、barcode 和默认 widget 行为、自定义密码字符、更丰富的 widget 文本、Unicode 嵌入和更多 value 子节点创建仍是进行中的目标

缺失隐式数据集值的模板默认初始化和通用原型继承也仍是独立工作

参考与相关 API

UI 文法与默认值遵循 XFA 3.3 specification

Native Absent Property Creation、Native Property DOM 与 Interactive XFA Runtime