PDFium Delphi Component Docs

FormFieldInfo 속성

컴포넌트: TPdf  ·  유닛: PDFium
active page의 지정된 index에 있는 form field를 설명하는 전체 record입니다

Syntax

property FormFieldInfo[Index: Integer]: TPdfFormFieldInfo; // read only

Description

FormFieldInfo는 현재 활성 페이지에서 0 기반 Index 위치의 폼 필드 위젯 주석에 대한 스냅샷 TPdfFormFieldInfo 레코드를 반환합니다. 이 레코드는 기반 FPDF_ANNOTATION 핸들을 직접 뜯지 않고도 하나의 AcroForm 필드 위젯을 강타입으로 볼 수 있게 해 줍니다. 기반이 되는 필드 타입과 플래그는 PDF 1.7 스펙 12.7절에 정의되어 있습니다

레코드에는 필드 Name(부모 필드 그룹을 관통하는 완전한 경로, 예: "order.shipto.address"), 접근성 툴팁에 쓰이는 AlternateName, FieldType 열거형 (fiPushButton, fiCheckBox, fiRadioButton, fiTextField, fiListBox, fiComboBox, fiSignature, fiUnknown), 비트 집합인 Flags(ffReadOnly, ffRequired, ffNoExport, …), FormData 내보내기에 기록되는 ExportValue, boolean 필드용 Checked 플래그, 렌더링에 쓰이는 FontSize, 그리고 콤보·리스트 박스가 쓰는 옵션 집합 배열 OptionLabels / OptionSelected가 담깁니다 그룹에 속한 라디오 버튼 위젯은 추가로 GroupCount와 GroupIndex를 채웁니다

유효 인덱스는 0 .. FormFieldCount - 1입니다. 레코드는 값 타입이라 필드를 바꿔도 문서에 다시 기록되지 않습니다. 필드 값을 바꾸려면 FormField[Index]로 대입하고, 플래그 비트마스크를 바꾸려면 SetFormFieldFlagsAt을 호출하세요. 읽기는 느긋합니다 — PDFium이 Unicode 필드 이름, 옵션 레이블, export value를 필요할 때 디코딩하므로 — 많은 필드를 여러 번 순회할 때는 결과를 캐싱하세요

Parameters

Index현재 페이지의 0 기반 위젯 인덱스입니다(0 .. FormFieldCount - 1)

Remarks

Example

var I, J: Integer;
var Info: TPdfFormFieldInfo;
for I := 0 to Pdf1.FormFieldCount - 1 do
begin
  Info := Pdf1.FormFieldInfo[I];
  Memo1.Lines.Add(Format('%s [%d] export=%s checked=%s',
    [Info.Name, Ord(Info.FieldType), Info.ExportValue, BoolToStr(Info.Checked, True)]));
  for J := 0 to High(Info.OptionLabels) do
    Memo1.Lines.Add(' ' + Info.OptionLabels[J]);
end;

See Also

FormField, FormFieldCount, FormFieldInfoAt, FormFieldAt, FormType