PDFium Delphi Component Docs

FormFieldInfoAt 속성

컴포넌트: TPdf  ·  유닛: PDFium
지정한 page coordinate에 있는 widget의 form field record입니다

Syntax

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

Description

FormFieldInfoAt는 현재 활성 페이지를 히트 테스트하여 (X, Y) 위치의 위젯 주석을 기술하는 TPdfFormFieldInfo 레코드를 반환합니다. 좌표는 PDF 사용자 공간이며 원점은 페이지 왼쪽 아래, 단위는 포인트(1/72 inch)입니다. 레코드에는 FormFieldInfo[Index]가 반환하는 것과 같은 내용이 담깁니다 — 필드 타입 (fiTextField, fiCheckBox, …), 필드 이름, 별칭, 플래그, 옵션 레이블, 체크 상태, export value, 폰트 크기

좌표가 어떤 위젯 사각형에도 걸리지 않으면 FormFieldInfoAt은 기본값으로 초기화된 TPdfFormFieldInfo를 반환합니다 — FieldType = fiUnknown이고 문자열은 전부 비어 있습니다. 전체 레코드를 꺼내기 전에 값싼 예/아니오 확인이 필요하면 HasFormFieldAt[X, Y]를 쓰거나, 그냥 반환된 FieldType을 확인하세요

조회는 페이지 위젯을 대상으로 O(n)이고 거기에 Unicode 필드 메타데이터까지 디코딩하므로 HasFormFieldAt보다 무겁고, 마우스 이동 핸들러에서는 HasFormFieldAt를 먼저 확인하고 FormFieldInfoAt은 클릭이나 hover 진입 때만 호출하세요. 마우스 위치에서 온 좌표는 디바이스 픽셀을 페이지 단위로 바꾸려고 먼저 TPdfView.PointToPage를 통과해야 합니다

Remarks

Example

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;

See Also

HasFormFieldAt, FormFieldInfo, FormFieldAt, FormFieldCount