PDFium Delphi Component Docs

FormFieldInfoAt свойство

Компонент: TPdf  ·  Модул: PDFium
Запис на поле на формуляра за уиджета, намиращ се на дадената координата на страницата.

Синтаксис

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

Описание

FormFieldInfoAt извършва hit тест на текущо активната страница и връща записа TPdfFormFieldInfo, описващ анотацията на уиджета на (X, Y). Координатите са в PDF user space, с начало в долния ляв ъгъл на страницата и единици, изразени в точки (1/72 инча). Записът отразява това, което FormFieldInfo[Index] връща — тип на полето (fiTextField, fiCheckBox, …), име на полето, алтернативно име, флагове, етикети на опциите, състояние на отметка, експортна стойност и размер на шрифта.

Когато координатата не попада в никой правоъгълник на уиджет, FormFieldInfoAt връща инициализиран по подразбиране TPdfFormFieldInfoFieldType = fiUnknown и празни низове навсякъде. Използвайте HasFormFieldAt[X, Y] за евтина проба да/не, преди да извлечете пълния запис, или просто проверете върнатия FieldType.

Търсенето е O(n) през уиджетите на страницата и допълнително декодира Unicode метаданните на полетата, така че е по-тежко от HasFormFieldAt. В обработчик на движение на мишката проверете HasFormFieldAt първо; извиквайте FormFieldInfoAt само при кликване или влизане с курсора. Координатите от позицията на мишката минават през TPdfView.PointToPage първо, за да се преведат пикселите на устройството в единици на страницата.

Забележки

Пример

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