procedure GenerateFormAppearances;
GenerateFormAppearances 通过原生表单填写编辑器重建可编辑文本和组合框外观,并同步复选框及单选按钮的外观状态
原生文本和组合框赋值会通过表单填写编辑器提交外观;原始字典修改或初始缺失的外观,在扁平化前仍可能需要此重生成步骤,因为扁平化使用保存的外观流,而非实时编辑器显示
填写并锁定表单时的正确工作流是:赋值所有 FormField[] 值 → 调用一次 GenerateFormAppearances → 可选调用 FlattenPage / FlattenAllPages → 调用 SaveAs。如果你只需要保存已填写的表单而不压平,仍建议调用 GenerateFormAppearances 以确保与第三方 PDF 查看器的最大兼容性
该过程一次调用即可作用于整个文档;没有逐页变体
begin
// Assign form field values
Pdf1.FormField[0] := 'Alice Example';
Pdf1.FormField[1] := '[email protected]';
Pdf1.FormField[2] := '2026-05-20';
// Bake appearance streams so values are visible in all viewers
Pdf1.GenerateFormAppearances;
// Flatten and save a non-editable copy
Pdf1.FlattenAllPages;
Pdf1.SaveAs('output_filled_flat.pdf');
end;
继承的 widget 会先进行临时原生编辑,再经验证恢复原始父字段值,不会在 widget 上写入遮蔽父值的值
继承的只读字段无法使用该编辑工作流,会抛出错误;GenerateFormAppearances 不是事务式文档操作