PDFium Delphi Component Docs

SetFormFieldFlags 메서드

컴포넌트: TPdf  ·  유닛: PDFium
현재 페이지의 지정한 주석 인덱스에 있는 폼 필드에 AcroForm 필드 플래그를 설정합니다

Syntax

procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags);

IndexInteger. 현재 페이지에서 폼 필드의 0 기반 주석 인덱스입니다. 0부터 AnnotationCount - 1 범위 안이어야 합니다
FlagsTPdfFormFieldFlags. 필드에 적용할 TPdfFormFieldFlag 값 집합입니다. read-only, required, no-export 같은 PDF 스펙에 정의된 AcroForm 필드 플래그에 대응합니다

Description

SetFormFieldFlags는 현재 페이지에서 지정한 0 기반 주석 인덱스의 폼 위젯 주석에 AcroForm 필드 플래그를 기록합니다. 플래그는 필드의 대화형 동작을 제어합니다. 예컨대 read-only로 표시하면 사용자가 값을 바꿀 수 없고, required로 표시하면 폼 제출 전에 반드시 채워야 한다는 신호가 됩니다

Index 파라미터는 FormFieldCount가 알려 주는 폼 필드 인덱스가 아니라 AnnotationCount가 알려 주는 주석 인덱스를 가리킵니다. 어느 주석 인덱스가 폼 위젯인지는 FormFieldInfo나 HasFormFieldAt로 확인하세요. 인덱스 대신 페이지 좌표로 필드를 지정하려면 SetFormFieldFlagsAt을 쓰세요

플래그 변경은 메모리상 문서에 즉시 적용되지만 SaveAs를 호출해야 비로소 저장됩니다. 폼을 채운 뒤 프로그램으로 잠글 때 권장 순서는 FormField[] 값 대입, GenerateFormAppearances 호출, 플래그를 read-only로 설정, SaveAs 호출입니다

Example

var
  I: Integer;
begin
  Pdf1.PageIndex := 0;
  // Mark every form field on the page as read-only
  for I := 0 to Pdf1.AnnotationCount - 1 do
    if Pdf1.FormFieldInfo[I].FieldType <> fftUnknown then
      Pdf1.SetFormFieldFlags(I, [ffReadOnly]);
  Pdf1.SaveAs('output_readonly.pdf');
end;

See Also

FormField, FormFieldCount, FormFieldInfo, SetFormFieldFlagsAt, HasFormFieldAt