scalar 字段的 supplied-family fallback

普通文本字段、comb 单元、choice 显示标签、checkbox 与 radio 标记、密码掩码以及原生 push button caption 可以使用与富文本相同的显式提供字体族,而不改变其 scalar 表单元数据

提供一到十六个互不相同的配置标签及其 regular TrueType 程序,然后启用 FallbackFontFamilies;选择覆盖完整字素,不使用已安装的系统字体

既有的普通换行、间距、Shaping、bidi、裁剪、旋转、自动尺寸、选中列表行与导出状态行为保持有效;混合 comb 字段保留原始 scalar 单元限制,不接受原始 comb profile 拒绝的复杂 Shaping

混合普通外观可能包含子 Form 与多个真实内嵌字体,因此请消费返回的对象计数,而不是假定固定七个对象的外观

Windows JSON 与 callback 传输

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fontFamilies": ["Primary", "Serif", "Sans"],
  "fallbackFontFamilies": true,
  "fields": [
    {"name": "Plain", "value": "A\u03a9"},
    {"name": "Check", "value": "Yes"}
  ]
}

Windows job 通过既有 fonts 对象提供每个配置字体族的 regular 字体文件;hpdf_document_execute_json_v1 则通过既有带版本字体 callback 与 IO 扩展返回其真实 regular 程序

显式具名 fallback 让纯 scalar 填充走与混合 typed run 相同的已认证候选事务;仅 scalar 操作请求 regular 候选 face,并返回 typedRichText=false 与 scalarFamilyProfile="supplied-regular-fonts-v1"

FDF 与 XFDF scalar 导入对文本、choice、checkbox 与 radio 使用同一 supplied-family 路径;push button caption 使用原生 caption API,不作为 scalar 按钮导出状态导入

Windows scalar 同值导入与填充保留其既有的仅值 no-op 契约并保留精确的已提交字节,包括只读字段;它们不会把新字体或颜色配置与既有 AP 比较,因此显式重建外观请使用原生的字体族 setter

原始 typed 富文本 run 保留其既有的样式与外观比较;加入 scalar fallback 不会量化 typed 尺寸或颜色,也不会改变编写的 RV

PDF 与结果 callback 都必须成功后上下文更新才可见;粘性字体与 IO 错误、取消、预算、加密认证与签名策略会保留已提交对象图与原子文件输出

被清除的单选 choice 存储 /V null 与空索引数组;显式选中的空导出选项保留 /V () 及其真实索引,因此重复清除与空值选择保持可区分

没有选中索引也没有空导出选项的旧式空白 choice 可被识别为仅值 no-op;带有真实选中空导出的只读 choice 无法被清除

原生 Linux JSON 与 callback 传输

Linux 带版本操作接受同样的有序 fontFamilies 与 fallbackFontFamilies 选项;regular 程序通过操作的 Fontconfig 环境解析并提供给原生的字体族外观 API

scalar 文本、comb 单元、choice 标签、checkbox 与 radio 标记、密码掩码、文件选择字段与显式 push button caption 使用真实的完整字素覆盖;scalar FDF/XFDF 导入加载 regular 候选而不添加编写的富文本标志或 RV

仅富文本导入保留其真实需要的样式并集,而不是请求每个字体族的 regular face;混合 scalar 与富文本导入则添加 scalar 字段所需的 regular 候选

Linux callback 导入为重复清除与同值 no-op 保留精确的已提交字节;已认证的 AES R5/R6、P1/P2/P3 与 FieldMDP 策略、取消与发布失败保留先前已提交文档

对每个全新构建的原生 ABI 库运行 Tests/Linux/Run-ScalarFontFallbackChecks.sh LIBRARY FIXTURES FONTS OUTPUT;Tests/Linux/HeadlessScalarFontFallback.en-us.md 描述真实的已签名输入、隔离的三字体目录与独立的字形/CMS 检查

复现一致性检查

公共 Windows runner 接受显式的源、输出、字体、scalar fixture、清除 fixture 与真实签名策略目录;它们绝不静默消费上一次的私有证明目录

用 Tests/Linux/Build-HeadlessTypedFormFixtures.py 生成初始的四字段文档,然后把它的 mixed.pdf 传给 scalar 与清除 fixture 生成器

python Tests/CABI/BuildScalarFixtures.py work/typed/mixed.pdf work/scalar
python Tests/CABI/BuildScalarClearFixtures.py work/scalar/scalar.pdf work/clear

提供名为 primary-0.ttf、DejaVuSerifCondensed.ttf 与 DejaVuSans.ttf 的真实 regular 程序;回归 fixture 生成器 Tests/Linux/Build-HeadlessRichFontListFixtures.py 从调用方提供的 DejaVu 字体目录准备确定性的 Primary 子集与全部十二个真实样式程序

用 Tests/Linux/Run-HeadlessTypedFormTests-Windows.ps1 及其必需的证书/密钥身份目录生成真实的 P1、P2、P3 与 FieldMDP 文档;其输出包括 p1-signed.pdf、p2-signed.pdf、p3-signed.pdf 与 lock-signed.pdf

Tests/CABI/RunScalarClearNative.ps1 -SourceDirectory Lib -OutputDirectory work/native `
  -FontDirectory work/fonts -FixtureDirectory work/scalar `
  -ClearFixtureDirectory work/clear -PolicyDirectory work/signed
Tests/CABI/RunScalarClearABI.ps1 -SourceDirectory Lib -OutputDirectory work/abi `
  -FontDirectory work/fonts -FixtureDirectory work/scalar `
  -ClearFixtureDirectory work/clear -PolicyDirectory work/signed `
  -LegacyFixtureDirectory work/typed -LegacyFontDirectory work/legacy-fonts

旧式回归参数沿用 Run-WindowsTypedFormChecks.ps1 使用的既有 Windows typed 表单 fixture 与字体目录;新的 scalar 检查还独立检查真实内嵌程序、CID 映射、表单值与保留的已签名 ByteRange

两个 callback 成功后,Windows DLL no-op 保留精确的已提交字节;原生事务 API 保留其既有的已准备修订发布行为,同时为语义 no-op 报告零个变更字段

FDF 区分空选择数组与选中的空导出字符串;既有的 XFDF 空值约定对照目标选项列表解释,无法为每个空导出选项文档提供无损区分

原生 API

富文本 run fallback · Windows 富文本字体传输