高级 AcroForm 处理

HotPDF 可以重新计算已加载字段、重新生成基于标准的可变文本外观、解析批注外观状态,并扁平化所选字段集而不重写未触及的页面

计算顺序

RecalculateLoadedFormFields 遵循已加载的 /AcroForm /CO 数组,并通过安全的字段脚本求值器求值有界的 AFSimple_Calculate 操作 SUM、AVG、PRD、MIN 和 MAX

ApplyLoadedFieldCalculation 安装计算动作并将目标字段添加到 /CO,且不产生重复条目

安全字段脚本

EvaluateLoadedFieldJavaScript 只求值与请求的字段触发器关联的声明式计算和验证语句

可变文本外观

EnsureLoadedFieldAppearanceStream 遍历每个 widget,并从字段层级或 AcroForm 继承 /DA、/Q、/V、/DV、/Ff 和 /MaxLen 值

批注外观状态

GetLoadedAnnotationAppearanceStream 解析普通、悬停或按下外观,并从悬停或按下回退到普通

状态字典按顺序使用 /AS、继承的 /V 或 /DV、父状态、/Off 和唯一流回退

选择性扁平化

FlattenLoadedFormFields 只将选定的 widget 外观绘制到其所属页面,只移除匹配的字段和批注,并保留每个未触及的页面和字段

默认权限门在 DocMDP 下拒绝结构更改,并在任何页面被修改前强制 FieldMDP All、Include 和 Exclude 锁

PDF.BeginIncrementalUpdate('SignedForm.pdf');
PDF.RecalculateLoadedFormFields;
PDF.FlattenLoadedFormFields(['Subtotal', 'Total']);
PDF.SaveIncrementalUpdate('SignedForm-updated.pdf');

相关 API