自動 XFA 選擇與布林建立
單元:HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF 消耗實際的 XFA 版面,建構選擇欄位、核取方塊 widget 以及選擇鈕父節點與成員,不需要預先備妥的 PDF 槽位
選擇欄位
下拉與清單欄位使用原生 /FT /Ch 字典;分開的 XFA 顯示與儲存清單變成 /Opt 匯出/顯示對,保留 Unicode、分隔符、明確的空匯出、typed 純量項目與匯出值周圍的空白
可編輯的下拉保留其自由文字值;不可編輯的選擇要求所選匯出值必須存在於選項清單中
多選值會變成按選項順序排列的有序原生 /V 陣列與對應的 /I 索引;一般的僅值輸入使用以換行分隔的匯出值,並在準備期間拒絕重複的所選值
Choice 項目腳本透過已儲存的 XDP 為重複匯出與空匯出保留精確的明確索引,因此其 PDF /I 陣列、匯出的 /V 值與顯示標籤外觀都不會有歧義
重複選取驗證比較精確字串,不會重排編寫的選取清單;唯一性驗證全程以索引堆積排序取代二次配對比較,並持續檢查取消
選擇外觀文字使用顯示標籤,/V 則用匯出值;清單外觀包含帶第一個選取項的量測可視視窗、精確的 /TI 頂端索引與相對的選取列突顯,同時保留完整的選項圖
原生的下拉、edit、多選、選取提交與 readOnly 旗標使用精確的 PDF 整數權杖,高位的旗標位元不會抹掉 readOnly 位元
核取方塊與選擇鈕狀態
核取方塊包含真實的 Off 與 on 狀態 Form XObject;布林樣式與標題消耗實際的標記形狀、尺寸、UI 外框、欄位顏色、純量 Unicode 標題與核取方塊第三狀態,不依賴提供字型中的勾勾字元
原生 /Opt 保留 XFA 匯出值;保留的 Off 匯出與以 XFAOn 開頭的匯出會取得無衝突的活動狀態別名,而它們實際的匯出字串在 /Opt 中維持不變
選擇鈕成員依範本互斥群組路徑與原生資料 context 路徑共用一個原生父節點;重複群組即使顯示的群組名稱相同,也取得獨立的 /Kids、/V、/Opt 與 widget /AS 狀態
同一選擇鈕群組內相等的匯出值會設定 RadiosInUnison 並啟用每個對應成員;文件層級的編輯原則與互斥群組存取決定父節點的 readOnly 旗標
互斥群組的 tb 與 lr-tb 版面會帶目前的原生資料範圍分派,有定位的互斥群組則對其成員套用自己的 x/y 原點
執行階段持久化與準備
互斥群組 rawValue 的讀取與指派參與既有的原生事件交易、繫結儲存格、表單/資料同步與回復;儲存的執行階段 XDP 可直接傳給自動建立器
驗收素材會變更第二個重複下拉、核取方塊與互斥群組,立即透過其資料別名讀取群組,儲存 XDP,並獨立驗證產生 PDF 的值、狀態與外觀,同時保留第一個執行個體
所有候選準備失敗都會保留目的地位元組、長度與位置;選擇選項陣列、欄位名稱、布林匯出、widget 數量、圖形配置與彙總外觀文字沿用既有的資源限制
目的地 I/O 失敗保留自動 XFA 建立所述的呼叫端串流邊界
其餘消費端工作
rich 標題、換行標題尺寸、每 edge 與填色外框樣式、之後的 widget 狀態提交、之後的互動式清單捲動、多選空行曖昧、動態選擇項方法、進階互斥群組版面與簽章欄位,仍屬另外的整合工作
選擇 metadata記錄這些原生消費端使用的加法 callback 提示