型別化 rich text run 間距 JSON

Windows 檔案工作與版本化 callback 操作、以及原生 Linux 版本化 callback 操作,使用原始型別化 run 在 forms.fill 的 richTextRuns 條目上綁定間距

{"type":"forms.fill","fields":[{"name":"Input","richTextRuns":[
  {"text":"A spaced line","fontSize":12,
   "letterSpacingKind":"em","letterSpacing":0.125,
   "wordSpacingKind":"points","wordSpacing":-0.5}
]}]}

letterSpacingKind 與 wordSpacingKind 接受 legacy、normal、points 與 em;省略 kind 而給數值時按 points,kind 與值都省略時按 legacy

points 與 em 要求有限數值;legacy 與 normal 只接受缺值或零;撰寫值與折算 point 長度的絕對上限為 1000000

Windows JSON 解析器在原始型別化 run 進入排版之前,把有限十進位值保留到最近的 Double;科學記號遵循既有 JSON 語法與數值範圍,既有的請求位元組上限同樣約束長的數字 token

未知模式、錯誤的 JSON 型別、溢位的計算值以及非文字欄位上的 rich run,都會在字型載入或發佈之前失敗;既有的彙總字型、物件、輸入輸出預算與取消檢查繼續生效

scalar 與 rich 欄位混合時使用既有的事務化候選,保留目前已載入圖、AES 修訂版金鑰驗證、簽章約束與兩階段 PDF/結果 callback 行為

在本設限 profile 內,明確 normal 與明確零算出相同的 point 間距與規範 RV,使語義等價的唯讀更新成為 no-op;版本化 JSON 操作保留原始來源位元組,省略的 legacy 模式依然可區分,因為它繼承全域外觀選項

唯讀欄位接受真實的語義 no-op,拒絕變更的間距;成功的 JSON no-op 精確保留 PDF 位元組,輸出或結果 callback 失敗讓目前 context 保持不變

能力詮釋資料暴露 typedRichFill.spacing,不更動既有 C ABI 結構或符號;間距作用於真實整形字形座標與 RV 值,規則按原生 run 間距的設限約定