procedure GenerateFormAppearances;
GenerateFormAppearances 透過原生表單填寫編輯器重建可編輯文字與下拉式方塊外觀,並同步核取方塊與選項按鈕外觀狀態
原生文字與下拉式方塊指派會透過表單填寫編輯器提交外觀;原始字典編輯與原本缺少的外觀,在壓平之前仍可能需要此重新產生步驟,因為壓平使用儲存的外觀串流,而非即時編輯器的顯示
填寫並鎖定表單的正確流程是:指派所有 FormField[] 值 → 呼叫一次 GenerateFormAppearances → 視需要呼叫 FlattenPage / FlattenAllPages → 呼叫 SaveAs。即使只需要儲存已填寫表單而不壓平,仍建議呼叫 GenerateFormAppearances,以提升第三方 PDF 檢視器的相容性
此程序一次處理整份文件,沒有逐頁版本
begin
// Assign form field values
Pdf1.FormField[0] := 'Alice Example';
Pdf1.FormField[1] := '[email protected]';
Pdf1.FormField[2] := '2026-05-20';
// Bake appearance streams so values are visible in all viewers
Pdf1.GenerateFormAppearances;
// Flatten and save a non-editable copy
Pdf1.FlattenAllPages;
Pdf1.SaveAs('output_filled_flat.pdf');
end;
繼承 Widget 先經過暫時的原生編輯,再驗證還原原始父欄位值;不會在 Widget 寫入遮蔽值
繼承的唯讀欄位無法使用此編輯流程,會拋出錯誤;GenerateFormAppearances 不是交易式文件操作