PDFium Component Docs

SetFormFieldFlags 메서드

이 API 항목은 식별자, 시그니처, 코드 블록, PDF 용어를 원래 형태로 유지합니다.
컴포넌트: TPdf  ·  유닛: PDFium
현재 페이지의 지정한 주석 인덱스에 있는 폼 필드에 AcroForm 필드 플래그를 설정합니다

구문

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

Index정수. 현재 페이지의 폼 필드에 대한 0부터 시작하는 주석 인덱스입니다. 0부터 AnnotationCount - 1 범위에 있어야 합니다
FlagsTPdfFormFieldFlags. 필드에 적용할 TPdfFormFieldFlag 값 집합입니다. 이는 읽기 전용, 필수, no-export 같은 PDF 규격의 AcroForm 필드 플래그에 해당합니다

설명

SetFormFieldFlags는 현재 페이지의 0부터 시작하는 지정된 주석 인덱스에 있는 폼 위젯 주석에 AcroForm 필드 플래그를 기록합니다. 이 플래그는 필드의 상호작용 동작을 제어합니다. 예를 들어 읽기 전용으로 표시하면 사용자가 값을 바꿀 수 없고, 필수로 표시하면 제출 전에 반드시 채워야 함을 의미합니다

Index 매개변수는 FormFieldCount가 보고하는 폼 필드 인덱스가 아니라 AnnotationCount가 보고하는 주석 인덱스를 가리킵니다. 어떤 주석 인덱스가 폼 위젯에 해당하는지 확인하려면 FormFieldInfo 또는 HasFormFieldAt를 사용하세요. 인덱스 대신 페이지 좌표로 필드를 지정하려면 SetFormFieldFlagsAt를 사용하세요

플래그 변경은 메모리 내 문서에 즉시 반영되지만 SaveAs를 호출하기 전까지는 저장되지 않습니다. 프로그램으로 폼을 채운 뒤 잠글 때 권장 순서는 다음과 같습니다: FormField[] 값을 대입하고, GenerateFormAppearances를 호출한 다음, 플래그를 읽기 전용으로 설정하고, 마지막으로 SaveAs를 호출합니다

예제

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;

참고 항목

FormField, FormFieldCount, FormFieldInfo, SetFormFieldFlagsAt, HasFormFieldAt