跨 rich 樣式的 grapheme 換行

當過寬單詞跨多個 typed rich text run 時,THPDFHeadlessDocument.SetRichTextFieldValueWithAppearance 會把完整的 Unicode grapheme cluster 留在同一物理行

改變字型、顏色或字級不會在基礎字元與其結合符號之間產生可允許的緊急斷行,即使空 run 分隔了兩者的樣式也一樣

配適器在完整邏輯群組上計算 grapheme 邊界,量測實際樣式化外觀片段,並在繪製各自字型資源前把每個選取範圍指派到一行

指數試探加上有界前綴搜尋,避免反覆量測未使用的段落尾端;準備每個範圍與每個原生片段時都會檢查取消

原始 V、正典 RV、typed 樣式、字元間距與量測基線在儲存與重新載入後保持不變

超過整個內容寬度的不可分割樣式 cluster 保持完整並受 widget 內容裁切約束,與既有的單一 cluster 行為一致;下一個 cluster 繼續在另一行

停用換行時保留單一物理行

此版面行為同樣適用於使用 richTextRuns 與 characterSpacing 的實際原生 Linux JSON forms.fill 呼叫,且不改變帶版本號的操作記錄

跨不同樣式片段的 shaping 與符號定位、混合樣式段落 bidi 與任意 XHTML 仍是後續整合工作

參閱 合法樣式群組換行、Unicode grapheme 邊界 與 原生 rich text 欄位