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

See Also

FlattenAllPages, GenerateFormAppearances, SaveAs, Annotation