原生 XFA UI Property 覆寫
單元:HPDFXFA、HPDFXFARuntime 與 HPDFXFAEventScript
建立與選擇群組
受支援的欄位與 draw UI 節點公開 extras 與 picture,外加一個互斥的 widget 選擇:barcode、button、checkButton、choiceList、dateTimeEdit、defaultUi、imageEdit、numericEdit、passwordEdit、signature 或 textEdit
每個子節點基數為一;getElement 與直接屬性存取會在實際表單出現個體底下實體化受支援的不存在 property,共用原生建立預算與交易回復
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 屬於 metadata,在選取生效 UI widget 時被跳過
預設值與受支援的子路徑
UI、passwordEdit、choiceList 與 checkButton 公開常見的 id、use 與 usehref 結構描述屬性
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;自動原生布林建立會消耗生效的每執行個體標記、框線與純量標題屬性
setAttribute(value, name) 仍可用於明確的額外屬性;更多 widget 類別預設值與子結構描述會以另外的目標繼續推進
實際執行階段與 flatten 消費端
事件成功後,執行階段會為每個重複出現個體從生效 UI 重建 widget 類型;建立的 textEdit、passwordEdit 與 choiceList 節點會變成真實的文字、密碼與清單或下拉控制項
欄位 flatten 使用同一個生效 UI 選取,包括表單限定的原生 UI,或加到空的、僅含 metadata 的範本 UI 上的 widget 選擇
UI 屬性餵給實際的 PDF 欄位旗標,包括多行與不捲動文字、密碼遮罩、多選與選取即提交;已宣告的選項項目與目前繫結值仍保持連結
其他重複執行個體保留自己的 UI 與值;已儲存 XDP 重新載入與後續事件會繼續解析建立的原生 UI property 節點
已儲存的文字外觀
啟用 AutoFormAppearances 時,XFA 多行文字外觀會遵循明確的 LF、CR 與 CRLF 斷行,並逐行分開放置
受支援的單位元組文字,自動換行會量測生效的標準字型家族與尺寸;比控制項寬的單字會切成量測過的可容納前綴,產生的外觀保留所有文字字元
每個輸出行套用自己生效的靠左、置中或靠右對齊,以及既有的原生裁切矩形
涵蓋範圍
結構描述建立本身不會為每個 widget 選擇補上缺少的消費端;特殊化的 image、barcode 與預設 widget 行為、自訂密碼字元、更豐富的 widget 文字、Unicode 內嵌與更多 value 子節點建立,仍是進行中的目標
為缺少的隱含資料集值初始化範本預設值,以及一般原型繼承,也仍屬另外的工作
參考資料與相關 API
UI 文法與預設值遵循XFA 3.3 規格