PDFium Component Docs

FormFieldInfoAt Właściwość

Ten wpis API zachowuje identyfikatory, sygnatury, bloki kodu i terminy PDF w oryginalnej postaci.
Komponent: TPdf  ·  Moduł: PDFium
Rekord pola formularza dla widżetu znajdującego się pod podaną współrzędną strony

Składnia

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

Opis

FormFieldInfoAt wykonuje test trafienia na aktualnie aktywnej stronie i zwraca rekord TPdfFormFieldInfo opisujący adnotację widżetu pod (X, Y). Współrzędne są w przestrzeni użytkownika PDF, z początkiem układu w lewym dolnym rogu strony i jednostkami wyrażonymi w punktach (1/72 cala). Rekord odzwierciedla to, co zwraca FormFieldInfo[Index] — typ pola (fiTextField, fiCheckBox, …), nazwę pola, nazwę alternatywną, flagi, etykiety opcji, stan zaznaczenia, wartość eksportu i rozmiar czcionki

Gdy współrzędna nie trafia w żaden prostokąt widżetu, FormFieldInfoAt zwraca domyślnie zainicjalizowany rekord TPdfFormFieldInfoFieldType = fiUnknown i wszędzie puste łańcuchy. Użyj HasFormFieldAt[X, Y] jako taniego testu tak / nie przed pobraniem pełnego rekordu albo po prostu sprawdź zwrócony FieldType

To wyszukiwanie jest O(n) względem widżetów strony i dodatkowo dekoduje metadane pól Unicode, więc jest cięższe niż HasFormFieldAt. W obsłudze ruchu myszy najpierw sprawdzaj HasFormFieldAt; wywołuj FormFieldInfoAt tylko przy kliknięciu albo wejściu kursora nad element. Współrzędne z pozycji myszy przechodzą najpierw przez TPdfView.PointToPage, aby przetłumaczyć piksele urządzenia na jednostki strony

Uwagi

Przykład

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;

Zobacz też

HasFormFieldAt, FormFieldInfo, FormFieldAt, FormFieldCount