XFA Rich Text 換行

rich text 繪製管線會以繪製寬度、有效段落邊界與首行 textIndent,將 XHTML 段落文字排成連續的行

樣式化片段湊得成完整一行時,單詞會整體移動,包括跨相鄰 span 元素而中間沒有空格的單詞;比一行還寬的單詞會切成量測後的前綴,UTF-16 surrogate pair 則保持完整

一般的 XHTML 空格、tab 與原始行尾會折疊成單詞間的一個空格,行首與行尾的空格會被省略;br 元素強制換行,連續的 break 會保留中間的空行

每一行各自計算置中或靠右對齊與共同基線;軟換行後的 justified 行會把多餘寬度分配到實際的單詞空格上,而最後一行與以 br 結束的行保留自然間距

有效的原生 para.lineHeight 套用到每一行,且不會把行距壓到低於文字高度;相鄰段落間距在完整段落前後各套用一次

行內字型與顏色覆寫在斷行後仍然有效,超連結內的巢狀樣式也持續作用;每個定位後的超連結片段保留其目的地,並建立自己的原生 PDF 連結矩形

HPDFXFAFlatten 使用提供的 TXFAMeasureTextFunc 做排版量測,對過寬單詞採有界前綴試探;未提供 measurer 時,後備方案以每個 Unicode scalar 半個 em 的寬度計算

THotPDF.ApplyXFAAsAcroForm 使用原生字型 measurer,並在 XDP 儲存與重新載入後保留執行期變更,包括重複實例上各自獨立的文字、顏色與段落覆寫

目前的斷行器使用空白字元單詞邊界與緊急的 scalar 安全切分;完整的 Unicode 換行與 grapheme cluster 規則、更多 CSS white-space 模式、完整的 widget rich text 編輯與其餘裝飾幾何,仍是獨立的進行中目標

段落幾何、Rich Text 屬性覆寫 與 ApplyXFAAsAcroForm