PDFium Delphi Component 文件

FlattenAllPages 方法

组件: TPdf  ·  单元: PDFium
一个便捷包装器,用于压平文档中的每一页。当每一页都以 FLATTEN_SUCCESS 或 FLATTEN_NOTHINGTODO 完成时返回 True。推荐流程:GenerateFormAppearances → FlattenAllPages → SaveAs

Syntax

function FlattenAllPages(nFlag: Integer = FLAT_NORMALDISPLAY): Boolean;

nFlagInteger。选择应用于每一页的压平配置文件。传入 FLAT_NORMALDISPLAY(0,默认)以针对屏幕查看进行优化,或 FLAT_PRINT(1)以针对打印输出进行优化

Return Value

如果文档中的每一页都返回 FLATTEN_SUCCESS (1) 或 FLATTEN_NOTHINGTODO (2),则为 True;如果任何页返回 FLATTEN_FAIL (0),则为 False

Description

FlattenAllPages 是一个便捷包装器,它遍历已加载文档中的每一页,并对每一页调用等效的 FlattenPage。一次调用即可将所有页面上的注释和 AcroForm 控件合并为永久的、不可编辑的页面内容

仅当所有页面都以 FLATTEN_SUCCESS 或 FLATTEN_NOTHINGTODO 完成时,该方法才返回 True。单个页面返回 FLATTEN_FAIL 会导致该方法返回 False,不过其余页面的压平仍会继续

当文档包含已填写的表单字段时,务必在 FlattenAllPages 之前调用 GenerateFormAppearances。没有外观流,字段值将不会出现在压平输出中。推荐的完整工作流是:赋值 FormField[] 值 → GenerateFormAppearances → FlattenAllPages → SaveAs

要压平单个页面并检查其单独的结果代码,请改用 FlattenPage

Example

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;

See Also

FlattenPage, GenerateFormAppearances, SaveAs