PDFium Delphi Component 文件

FlattenPage 方法

组件: TPdf  ·  单元: PDFium
将当前页面上的注释和表单控件扁平化为永久的(不可编辑)页面内容。nFlag 选择扁平化配置文件:FLAT_NORMALDISPLAY (0) 用于屏幕显示,FLAT_PRINT (1) 用于打印输出。返回 FLATTEN_SUCCESS、FLATTEN_NOTHINGTODO 或 FLATTEN_FAIL 之一。在扁平化已填写的表单值之前请先调用 GenerateFormAppearances

Syntax

function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;

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

Return Value

三个整数常量之一:FLATTEN_SUCCESS (1) 表示注释已成功合并到页面内容中;FLATTEN_NOTHINGTODO (2) 表示页面没有可扁平化的注释或控件;FLATTEN_FAIL (0) 表示操作失败

Description

FlattenPage 将当前页面上的所有注释和 AcroForm 控件合并到永久的、不可编辑的页面内容流中。一旦压平,注释就不再是交互式的 — 它们变成无法编辑、删除或提交的普通图形。这是生成“锁定”PDF 的标准技术,可保留已填写表单或已注释文档的视觉外观

nFlag 参数选择将控件绘制到页面内容中时使用的渲染配置文件。对于将在屏幕上查看的文档使用 FLAT_NORMALDISPLAY (0),对于用于打印的文档使用 FLAT_PRINT (1)

当页面包含已填写的表单字段时,你必须在 FlattenPage 之前调用 GenerateFormAppearances。没有外观流,压平器就没有可合并的视觉表示,会静默地从输出中省略字段值。单页的推荐顺序是:赋值 FormField[] 值 → GenerateFormAppearances → FlattenPage → SaveAs

要一次压平文档中的每一页,请使用 FlattenAllPages。将返回值与 FLATTEN_FAIL 对比以检测错误;FLATTEN_NOTHINGTODO 不是错误条件

Example

var
  Res: Integer;
begin
  Pdf1.PageIndex := 0;
  // 填写表单字段,重新生成外观,然后压平
  Pdf1.FormField[0] := 'John Smith';
  Pdf1.GenerateFormAppearances;
  Res := Pdf1.FlattenPage(FLAT_NORMALDISPLAY);
  if Res = FLATTEN_FAIL then
    ShowMessage('Flatten failed')
  else
    Pdf1.SaveAs('output_flat.pdf');
end;

See Also

FlattenAllPages, GenerateFormAppearances, SaveAs, Annotation