PDFium Delphi Component Docs

GenerateFormAppearances 메서드

컴포넌트: TPdf  ·  유닛: PDFium
각 page를 FPDF_FFLDraw로 렌더링하여 모든 page의 모든 form widget에 대한 /AP(appearance stream)를 다시 생성합니다. FormField[i] := value 할당과 함께 쓰는 것이 권장되며, 이 call이 없으면 form value가 field에 focus가 있을 때만 보일 수 있고 이후 flatten operation에서 값이 조용히 사라질 수 있습니다. 모든 FormField[] 할당 후, 그리고 SaveAs / FlattenPage / FlattenAllPages 전에 호출하세요

구문

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는 문서 트랜잭션 작업이 아닙니다

관련 항목

FlattenPage, FlattenAllPages, FormField, SaveAs