可攜的 XFA 密碼外觀
單元:HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF 把 XFA passwordEdit 欄位消費為原生文字 widget,帶 PDF 密碼旗標與內嵌字型的遮罩外觀,Windows 與 Linux 一致
外觀為每個 Unicode 純量值顯示一個星號:由 UTF-16 代理對表示的補充字元產生一個星號,組合標記與 ZWJ 各自貢獻一個星號
原生 /V 保留完整撰寫的 Unicode 值;外觀遮罩不提供加密,也不會從 PDF 中移除該值
例如 A😀B 產生三個星號,é 產生兩個,因為組合重音符號是獨立純量
限制與取消
配接器在統計純量期間檢查取消,並在配置遮罩字串之前檢查剩餘的彙總字形預算
TXFAHeadlessPDFResult.GlyphUnits 對密碼外觀統計實際產生的星號;一般文字與其他外觀消費端的既有 UTF-16 核算不變
兩個補充字元剛好用完剩餘為 2 的 MaxGlyphs 預算;預算為 1 時在遮罩配置之前失敗
原始值仍受輸入與物件位元組限制約束,所有欄位共用彙總外觀預算
準備、預算與取消失敗讓呼叫端的目標位置、長度與既有位元組保持不變;目標寫入錯誤遵循串流自身的部分寫入行為
驗證
Tests/Linux/XFAHeadlessPasswordTests.pas 以及 Windows 與 Linux 密碼執行器驗證精確預算、取消邊界、串流保留與重試行為
獨立驗證器檢查原生值、旗標、真實的 AP CID 序列、ToUnicode 與內嵌字形 ID,然後用 MuPDF 渲染並抽取儲存的 PDF
自動 XFA 建立描述了其他原生欄位與繪製消費端