Windows supplied-family rich font fallback

Windows 文件任务与 hpdf_document_execute_json_v1 针对富 FDF/XFDF 导入和原始类型化富 run 支持可选择的调用方字族回退;回退选择覆盖整个字形簇的字族,包括跨越富样式边界的部分

默认保持严格:fallbackFontFamilies 为 false,缺失必需 glyph 照常失败;提供列表不会静默选择已安装的系统字体

类型化请求

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fontFamilies": ["Primary", "Sans", "Serif"],
  "fallbackFontFamilies": true,
  "fields": [{"name": "Input", "richTextRuns": [
    {"text": "A\u03a9a\u0301", "fontStyle": "regular",
     "fontFamilyCandidates": ["Unavailable", "Primary", "Serif", "Sans"]}
  ]}]
}

fontFamilies 包含一至十六个互不相同的已配置标签;ASCII 字母比较不区分大小写,其他 Unicode code point 精确比较;字段级 fontFamilies 和 fallbackFontFamilies 覆盖 forms.fill 的操作级默认值

启用 configured-family 回退后,类型化 run 可指定一至十六个有序 fontFamilyCandidates;未知名称保留在原始元数据中,在已供程序解析时被跳过;fontFamily 缺省时,第一个已配置的声明候选成为 run 字族

声明候选列表优先于 configured-family 顺序;本例中,Primary 字体缺失 Omega 时,只要两个备选都覆盖整个字形簇,就先选 Serif 再考虑 Sans

富 XML 导入

forms.import 使用操作级 fontFamilies 与 fallbackFontFamilies 属性;有界 XHTML 解码器保留每个行内 CSS font-family 列表,真实外观合成器按该顺序应用已供字体程序

<span style="font-family:Primary,Serif,Sans;font-weight:bold">AΩá</span>

FDF RV 字符串与 XFDF value-richtext 都走这条路径;既有 inline-xhtml-font-families-v1 档案保持不变,实际回退行为另行报告

真实字体字节

既有 THPDFCABIFormDataOperationV1 字体回调接收每个规范配置字族标签和 regular、bold、italic 或 boldItalic 样式标识;它返回原始有界 read-IO 表,其字节复制入自持存储

文件任务从既有 fonts 对象读取同样的字族/样式程序;对每个用到的富样式,绑定在准备事务前加载已配置候选程序;匹配资源在类型化字段间共享

V1 IO 与操作布局及既有导出符号保持不变;聚合资源、字体字节、内存、字段、对象、结果和输出预算继续生效;回调失败保持粘性,取消检查点覆盖解析、加载、准备和发布

事务与限制

AES 认证、签名修订保留、DocMDP、字段锁和只读检查使用既有认证事务;相同输入的富值、样式、字体和外观语义可以产生字节级一致的 no-op,包括只读字段

PDF 与 JSON 回调都成功后才切换当前上下文;任何非零状态后丢弃已输出的候选字节;文件任务在替换目标前准备完整候选

formDataExchange.suppliedFamilyFallback 报告 default=false、richOnly=true、wholeGrapheme=true、fontFamilyCandidates=true、maxCandidates=16 和 candidateOrder=declared-before-configured

该特性只作用于富内容;普通标量、选项标签和按钮 caption 回退仍是独立能力;例如,缺复选框 caption glyph 的子集首选字体仍需要合适的标量字体或未来的标量回退支持

已加载任务的直接富填写、较旧的任务句柄/字体回调扩展、任意 CSS 布局、外部样式表以及更进一步的 FDF/XFDF 注释、文件、动作或增量交换仍是独立工作

Related topics

Original typed rich filling, Windows form-data exchange, Versioned font transport, Native supplied families