类型化富文本 JSON 行高

forms.fill 在每个原始 richTextRuns 条目上接受可选的 lineHeightKind 和 lineHeight 成员,使用真实指定字体的段落与物理行布局

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fields": [{
    "name": "Input",
    "richTextRuns": [{
      "text": "First\rSecond",
      "fontSize": 10,
      "lineHeightKind": "number",
      "lineHeight": 2
    }]
  }]
}
Kind取值与行为
legacy两个成员都未提供时的默认值,保留既有段落布局
normal显式 normal 布局,使用指定字体度量和原生行距
number非负无单位因子,乘以本 run 的 fontSize
points非负绝对 point 行高
percent百分比,立即按本 run 的 fontSize 折算并以 points 存储
em因子,立即按本 run 的 fontSize 折算并以 points 存储

数值 lineHeight 而无 lineHeightKind 时选择 number;每个数值 kind 都要求值,legacy 和 normal 接受缺值或零

值必须是有限数且在零到一百万之间;折算出的 point 行高同样不得超出该边界,未知 kind 名或非法类型在字体加载之前失败

支持零值,可能产生重叠基线;真实字面的上伸与下伸决定负半行距以及段落 strut 与参与 run 盒的并集

每个 JSON run 都是原始类型化条目而非 CSS 元素;percent 和 em 不会在 JSON run 对象之间引入继承

第一个 run 提供段落度量样式;空的第一个 run 可能贡献更大或不同样式的父盒,独立的准备序列会为其真实字体做接纳而不替换编写的 run

IsParagraphStrut 不是公开 JSON 成员;生成的仅度量 run 计入累计操作 run 预算,每个加载的度量字面计入聚合字体字节

回调收到真实配置的 family 与样式请求,包括不绘制文本的父字面;既有的基于路径的 Windows 文件作业使用相同的类型化解析器和指定字体规划器

保存的 V 保留逻辑文本,RV 记录计算出的段落 profile,AP 保留原始颜色和字号精度

无变化的全富操作精确保留已提交 PDF 字节,合法的只读语义 no-op 也不例外;变更的只读样式、AES 认证失败和受保护签名字段保留既有策略

回调错误、取消和发布预算失败保留先前 context;文件作业在原子发布下同样保留先前目标

后面的回调失败时,回调 sink 可能已经收下候选 PDF 字节;存活的 context 只在必需回调与最终取消检查都成功之后提交

版本化 C 操作与字体回调布局不变;能力元数据在类型化填充 profile 内宣告真实的 lineHeight kind 与边界

原生行高布局 · 原始 run 记录