XFA 富文本换行
富文本绘制管线依据绘制宽度、生效的段落边距和首行 textIndent,把 XHTML 段落文本排布成连续的行
只要带样式的片段能凑满一整行,单词就整体移动,包括跨越相邻 span 元素、中间无空格的单词;宽过一行的单词拆成若干测量后的前缀,UTF-16 代理对保持完整
普通 XHTML 空格、制表符和源码行尾会折叠为单词之间的一个空格,行首行尾的空格被忽略;br 元素强制换行,连续换行会保留中间的空行
每行自行计算居中或右对齐以及公共基线;软换行后,两端对齐的行会把富余宽度分摊到实际的单词空格上,而末行和以 br 结束的行保持自然间距
生效的原生 para.lineHeight 作用于每一行,且不会让行距低于文本高度;相邻段落间距在整段外围只应用一次
行内字体和颜色覆盖在行拆分后依然保留,超链接内嵌套的样式继续生效;每个定位后的超链接片段都保留自己的目标地址,并创建自己的原生 PDF 链接矩形
HPDFXFAFlatten 使用提供的 TXFAMeasureTextFunc 做排版测量,对超宽单词做有界前缀探测;未提供 measurer 时,回退方案按每个 Unicode scalar 半个 em 的宽度估算
THotPDF.ApplyXFAAsAcroForm 使用原生字体测量器,并把运行时变更保留到 XDP 保存与重新加载之后,包括重复实例上独立的文本、颜色和段落覆盖
当前的断行器按空白单词边界工作,并带紧急的 scalar 安全拆分;完整的 Unicode 断行与字素簇规则、更多 CSS white-space 模式、完整的 widget 富文本编辑以及剩余的装饰几何仍是独立推进的目标