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
// 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;