自动 XFA push button 说明文字与状态
HPDFXFAWriteHeadlessPDF 从 XFA 布局创建真实的原生 push button widget,包括生效的标量或 XHTML caption、提供的字体程序、可见性、readonly 标志和交互高亮元数据
每个 widget 有 FT Btn、pushbutton Ff 标志、显式 normal 外观,以及从实际渲染内容派生的 Unicode MK.CA caption;按钮不会变成文本输入字段,也不需要占位 PDF 字段
可见 normal caption 还保留 DA 条目,其字体别名经 AcroForm.DR 解析到真实的 normal-caption Type0 字体;不会为兼容性嵌入空占位字体
caption 内容与布局
标量 caption 的字体大小、字重、姿态、字形和颜色,加上 XHTML 行内样式和混合基线,使用既有原生富文本解码器和外观构建器
CaptionFontFamilies 提供真实的 regular、bold、italic 和 bold-italic 程序及命名字族;字体从不合成,字体程序也不会被查找或下载
XHTML 行内元素之间的纯空白文本被保留,因此相邻的不同样式单词保留其原始分隔符
caption 内容缺失保留既有字段名回退,显式空内容保持空白,非空标量 caption 保留原始首尾空格;hidden、inactive 和 invisible caption 不绘制文本,也不序列化可再生的可见 caption
字段与 caption 边距、caption 位置、reserve 和段落对齐共同决定实际 caption 区域;缺失、为零和 schema 默认 -1 的 reserve 使用自然尺寸不做自动折行,正 reserve 允许折行,inline 摆放忽略 reserve
固定字段边界裁剪超宽 caption;显式段落分隔保持有效,生效的每实例覆盖保留未变化的模板同级节点
高亮与状态外观
| XFA highlight | 原生 PDF 结果 |
|---|---|
| inverted 或缺失 | H I 配 normal AP.N;阅读器应用反色激活处理 |
| none | H N 配 normal AP.N |
| outline | H O 配 normal AP.N;阅读器应用边框激活处理 |
| push | H P 配真实的 normal AP.N、down AP.D 和 rollover AP.R Form;down caption 位移以表现按压 |
push 模式下,名为 down 和 rollover 的标量项提供各自 caption 及 MK.AC 或 MK.RC 元数据;状态项缺失时使用 normal caption,显式空项产生空白状态
替代项不影响其他高亮模式,每个生成的状态保留自己的真实外观和已供字体图
事务与限制
真实的重复实例事件变更可以保存为 XDP、重新加载并被创建器消费;即时读取、覆盖与整载荷替换、首实例隔离和失败事件回滚仍是原生运行时操作
源节点与字节、字体程序、glyph 单元、对象和候选字节均有边界;取消与准备失败保留调用方流字节、长度和位置
向调用方流的最终写入是提交边界;该流在写入期间抛出的异常可能留下部分写入,不会表现为已回滚的不可寻址目标
此消费者创建已保存的 widget 外观状态;后续由阅读器驱动的 XFA 脚本执行或外观重建、富替代项内容、按钮图标、外部媒体和任意外来 XML 渲染仍是独立能力
高亮与 caption reserve 映射遵循 XFA 3.3 button 和 caption 语义
Emitter metadata · Boolean rich captions · Automatic native XFA creation