procedure GenerateFormAppearances;
GenerateFormAppearances는 네이티브 form-fill 편집기로 편집 가능한 텍스트와 combo-box 외관을 다시 만들고 checkbox 및 radio-button 외관 상태를 동기화합니다
네이티브 텍스트/combo-box 대입은 form-fill 편집기로 외관을 commit합니다. raw 사전 편집이나 처음부터 없는 외관은 flatten 전에 재생성이 필요할 수 있습니다. flatten은 실시간 편집기 화면이 아닌 저장된 외관 스트림을 사용합니다
폼을 채우고 잠글 때의 올바른 워크플로는 다음과 같습니다. 모든 FormField[] 값 대입 → GenerateFormAppearances 한 번 호출 → 필요하면 FlattenPage / FlattenAllPages 호출 → SaveAs 호출. 평면화 없이 채워진 폼만 저장할 때도 서드파티 PDF 뷰어와의 최대 호환성을 위해 GenerateFormAppearances를 권장합니다
이 프로시저는 한 번의 호출로 문서 전체에 동작하며 페이지별 변형은 없습니다
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 값을 쓰지 않습니다
상속된 읽기 전용 필드는 이 편집 작업을 사용할 수 없어 오류가 발생합니다. GenerateFormAppearances는 문서 트랜잭션 작업이 아닙니다