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
  // Fill fields, generate appearances, flatten entire document
  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