function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;
| nFlag | Integer。選擇攤平設定檔。傳入 FLAT_NORMALDISPLAY(0,預設)可讓輸出針對螢幕檢視最佳化,或傳入 FLAT_PRINT(1)針對列印輸出最佳化 |
FLATTEN_SUCCESS(1)— 註解已成功合併至頁面內容;FLATTEN_NOTHINGTODO(2)— 頁面沒有可攤平的註解或元件;FLATTEN_FAIL(0)— 操作失敗FlattenPage 會將目前頁面上的所有註解與 AcroForm 元件合併到永久且不可編輯的頁面內容串流。攤平後,註解便不再具有互動性 — 它們會變成無法編輯、刪除或提交的一般圖形。這是產生「鎖定」PDF 並保留已填寫表單或已加註文件視覺外觀的標準技術
nFlag 參數選擇將元件繪製到頁面內容時所用的算繪設定檔。將在螢幕上檢視的文件請使用 FLAT_NORMALDISPLAY(0),要列印的文件請使用 FLAT_PRINT(1)
當頁面包含已填寫的表單欄位時,必須在 FlattenPage 之前呼叫 GenerateFormAppearances。沒有外觀串流時,攤平器沒有可合併的視覺呈現,會默默從輸出中省略欄位值。單一頁面的建議順序為:指派 FormField[] 值 → GenerateFormAppearances → FlattenPage → SaveAs
若要在單次呼叫中攤平文件中的每一頁,請使用 FlattenAllPages。將傳回值與 FLATTEN_FAIL 比較以偵測錯誤;FLATTEN_NOTHINGTODO 不屬於錯誤狀態
var
Res: Integer;
begin
Pdf1.PageIndex := 0;
// Fill a form field, regenerate appearances, then flatten
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;