PDFium Component Docs

FormFieldInfoAt 속성

이 API 항목은 식별자, 시그니처, 코드 블록, PDF 용어를 원래 형태로 유지합니다.
컴포넌트: TPdf  ·  유닛: PDFium
지정한 page coordinate에 있는 widget의 form field record입니다

구문

property FormFieldInfoAt[X, Y: Single]: TPdfFormFieldInfo; // read only

설명

FormFieldInfoAt는 현재 active page에서 hit-test를 수행하고 (X, Y)에 있는 widget annotation을 설명하는 TPdfFormFieldInfo record를 반환합니다. coordinate는 PDF user space를 사용하며, 원점은 page의 왼쪽 아래 모서리이고 단위는 point(1/72 inch)입니다. 이 record는 FormFieldInfo[Index]가 반환하는 내용과 같습니다 — field type(fiTextField, fiCheckBox, …), field name, alternate name, flag, option label, checked state, export value, font size가 들어 있습니다

coordinate가 어떤 widget rectangle 안에도 들어가지 않으면 FormFieldInfoAt는 기본 초기화된 TPdfFormFieldInfo를 반환합니다 — 전체가 FieldType = fiUnknown이고 문자열은 모두 비어 있습니다. 전체 record를 가져오기 전 가벼운 yes/no probe가 필요하면 HasFormFieldAt[X, Y]를 사용하거나, 반환된 FieldType만 확인하세요

이 lookup은 page의 widget 전체를 대상으로 O(n)이며 Unicode field metadata도 추가로 decode하므로, HasFormFieldAt보다 무겁습니다. mouse-move handler에서는 먼저 HasFormFieldAt를 확인하고, click 또는 hover-enter에서만 FormFieldInfoAt를 호출하세요. mouse position의 coordinate는 먼저 TPdfView.PointToPage를 거쳐 device pixel을 page unit으로 변환합니다

비고

예제

procedure TForm1.PdfView1Click(Sender: TObject);
var Info: TPdfFormFieldInfo;
  PageX, PageY: Double;
begin
  PdfView1.PointToPage(Mouse.CursorPos.X, Mouse.CursorPos.Y, PageX, PageY);
  Info := Pdf1.FormFieldInfoAt[PageX, PageY];
  if Info.FieldType <> fiUnknown then
    ShowMessage(Info.Name);
end;

참고 항목

HasFormFieldAt, FormFieldInfo, FormFieldAt, FormFieldCount