Native Linux ABI 表单外观

hpdf_document_execute_json_v1 通过 forms.fill 填充已加载的 AcroForm 字段,默认生成匹配的 normal 外观,并保留原始 PDF 修订、密码、security 字典与文档 ID

{"schemaVersion":1,"type":"forms.fill","fields":[
  {"name":"Notes","value":"First line Ω\nSecond café","fontSize":13},
  {"name":"Combo","value":"two"},
  {"name":"Colors","values":["blue","red"]},
  {"name":"Check","checked":true},
  {"name":"Radio","checked":true,"onState":"B"},
  {"name":"Submit","caption":"Send Ω"}
]}

字段值与外观

文本字段接受 value 或 typed richTextRuns;value 与 richTextRuns 同时提供时必须与推导出的纯文本完全一致,包括 CR 段落分隔符

纯文本外观遵循继承的 multiline、comb、对齐与旋转设置并内嵌选定的 Unicode TrueType 字体;带样式的 run 携带显式字体样式、字号、颜色、对齐、段落换行与装饰

密码文本字段的外观与字形映射按每个 Unicode 标量一个圆点打码,同时保留实际存储的字段值与原加密;文件选择字段显示其字面 Unicode 路径,不会打开所选文件

choice 字段接受一个 value 字符串或完整 values 数组,二者不可兼得;导出值映射到选项显示文本,多选按选项索引排序,空数组清空选择

checkbox 与 radio 组要求布尔 checked;onState 默认 Yes,显式提供时会选中匹配的 radio 控件;清空会同时更新字段与控件状态

pushbutton 需要 caption,用选定的内嵌 Unicode 字体绘制

forms.read 为每个 choice 字段返回完整 values 数组,清空后为空数组;标量 value 成员仍然可用

对富字段,forms.read 还会返回存储的 XHTML richText 字符串;普通值替换会同步 RV,带样式的 run 需要外观生成

选项与发布

每次编辑可接受 fontFamily(默认 DejaVu Sans)、fontSize(12)、padding(2)、characterSpacing(0)、wordSpacing(0)与 paintWhiteBackground(true)

typed 富文本编辑还可以使用 fontFamilies 数组与按 run 字体族选择;数组缺省时保持原有单字体族行为

文本编辑可以显式设 appearance:false 做纯值更新;choice 与按钮编辑必须生成外观

未知字段、重复编辑、非法选择、超限 comb 值、格式错误参数、取消、资源耗尽与 Callback 失败都不会改动当前已加载文档;输出在任何二进制发布 Callback 运行之前就已准备好

操作结果包含 updated 与当前字段列表;通过 formAppearances 能力数组发现受支持的外观类型

Native C ABI 验收会生成真实的明文与 AES R5/R6 表单输出;独立的 pypdf 与 MuPDF 检查会核对选择索引、控件状态、内嵌字体、Unicode 值、加密与真实外观像素

Native Linux C ABI · 签名工作流 · 剩余交付计划