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 值、加密与真实外观像素