function FlattenAllPages(nFlag: Integer = FLAT_NORMALDISPLAY): Boolean;
| nFlag | Integer。选择应用于每一页的压平配置文件。传入 FLAT_NORMALDISPLAY(0,默认)以针对屏幕查看进行优化,或 FLAT_PRINT(1)以针对打印输出进行优化 |
FLATTEN_SUCCESS (1) 或 FLATTEN_NOTHINGTODO (2),则为 True;如果任何页返回 FLATTEN_FAIL (0),则为 FalseFlattenAllPages 是一个便捷包装器,它遍历已加载文档中的每一页,并对每一页调用等效的 FlattenPage。一次调用即可将所有页面上的注释和 AcroForm 控件合并为永久的、不可编辑的页面内容
仅当所有页面都以 FLATTEN_SUCCESS 或 FLATTEN_NOTHINGTODO 完成时,该方法才返回 True。单个页面返回 FLATTEN_FAIL 会导致该方法返回 False,不过其余页面的压平仍会继续
当文档包含已填写的表单字段时,务必在 FlattenAllPages 之前调用 GenerateFormAppearances。没有外观流,字段值将不会出现在压平输出中。推荐的完整工作流是:赋值 FormField[] 值 → GenerateFormAppearances → FlattenAllPages → SaveAs
要压平单个页面并检查其单独的结果代码,请改用 FlattenPage
begin
// 填写字段,生成外观,压平整个文档
Pdf1.FormField[0] := 'Jane Doe';
Pdf1.FormField[1] := '2026-05-20';
Pdf1.GenerateFormAppearances;
if Pdf1.FlattenAllPages(FLAT_NORMALDISPLAY) then
Pdf1.SaveAs('output_flat_all.pdf')
else
ShowMessage('One or more pages could not be flattened');
end;