procedure GenerateFormAppearances;
GenerateFormAppearances はネイティブの form-fill エディターで編集可能なテキストと combo-box の外観を再構築し、checkbox と radio-button の外観状態を同期します
ネイティブのテキスト/combo-box 代入は form-fill エディターで外観を commit します。raw 辞書編集や最初から外観がないものでは、flatten 前に再生成が必要な場合があります。flatten は editor のライブ表示ではなく保存済み外観 stream を使います
フォームに入力してロックする際の正しいワークフローは、すべての FormField[] 値を代入 → GenerateFormAppearances を 1 回呼び出す → 必要に応じて FlattenPage / FlattenAllPages を呼び出す → SaveAs を呼び出す、の順です。フラット化せずに入力済みフォームを保存するだけであれば、サードパーティ製 PDF ビューアとの互換性を最大限に高めるために、GenerateFormAppearances を呼び出すことが依然として推奨されます
この手続きは 1 回の呼び出しでドキュメント全体を処理します。ページ単位のバリアントはありません
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;
継承ウィジェットは一時的にネイティブ編集し、元の親フィールド値を検証しながら復元します。ウィジェットには shadow value を書きません
継承した読み取り専用フィールドではこの編集処理を使えず、エラーになります。GenerateFormAppearances は文書単位のトランザクション処理ではありません