ADR-0013:混合组件和表格的连续区域流
- 状态:已接受
- 日期:2026-10-14
背景
文字区域 SPI 已支持当前页短栏及完整续栏,但混合流和合并表格仍只能返回普通分页片段。把一次完整新页测量的片段直接塞入全部短栏,会浪费可用空间,也无法让每栏表头和合并行组遵守对应高度。
决策
让 FlowColumn 与 GridTable 实现既有 RegionFlow。混合流为子组件传递当前区域的剩余高度、尚未经过的短区前缀与完整续区;先测量一次,再保留片段归属。普通组件整块移动,旧 PageableComponent 的测量片段保持原子性;区域组件自行选择完整行或合并行组作为分配单位,不把所有内容转换成文字行。
每个占用区域重复混合流内边距,间距只用于区域内相邻内容。单元格在固定栏宽下测量一次,表格按连通合并行组推进,每个占用栏重复完整表头;必须同时容纳表头和至少一个正文组。过短首区可跳过,完整续区不能容纳时失败。
片段数量、顺序、宽高和续区推进由共享组件校验器检查。保持原构造器和 layoutParts 方法,后端继续仅消费预计算绘制。字体组诊断按实际片段合并,重复表头复用诊断并附加最终块/页上下文;子组件来源仍保持各自局部 UTF-16 索引。
后果和边界
能够组合文字、图片、形状、嵌套流及合并表格,从剩余页高开始连续分栏,并接续普通正文。没有新增模块、依赖、隐式字体回退或远程资源。旧分页组件可参与,但其内部不会因多个短栏而重新切分;合并行组及单元格仍不可跨栏拆开。
验证包含一次测量、全部短栏利用、栏边距/间距恢复、重复表头/正文唯一性、合并行组移栏、来源诊断、预算/非法输出拒绝及同步取消。独立脚本读取最终 PDF 文字绘制矩阵、图片矩形和原文锚点,并用 Poppler/PDFium 检查所有页面。证据见混合分栏验收。