PDFium Delphi Component Docs

FormFieldInfoAt Propriété

Composant: TPdf  ·  Unit: PDFium
Enregistrement de champ de formulaire pour le widget situé à la coordonnée de page donnée

Syntax

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

Description

FormFieldInfoAt effectue un hit-test sur la page actuellement active et renvoie le TPdfFormFieldInfo décrivant l’annotation de widget à (X, Y). Les coordonnées sont en espace utilisateur PDF, avec l’origine au coin inférieur gauche de la page et des unités exprimées en points (1/72 pouce). L’enregistrement reflète ce que renvoie FormFieldInfo[Index] — type de champ (fiTextField, fiCheckBox, …), nom de champ, nom alternatif, drapeaux, étiquettes d’option, état coché, valeur d’export et taille de police

Lorsque la coordonnée ne tombe à l’intérieur d’aucun rectangle de widget, FormFieldInfoAt renvoie un TPdfFormFieldInfo initialisé par défaut — FieldType = fiUnknown et chaînes vides partout. Utilisez HasFormFieldAt[X, Y] pour une vérification bon marché oui/non avant de récupérer l’enregistrement complet, ou vérifiez simplement le FieldType

La recherche est en O(n) sur les widgets de la page et décode en plus les métadonnées Unicode des champs, elle est donc plus lourde que HasFormFieldAt. Dans un gestionnaire de déplacement de souris, testez HasFormFieldAt d’abord ; n’appelez FormFieldInfoAt qu’au clic ou à l’entrée de survol. Les coordonnées issues d’une position souris passent d’abord par TPdfView.PointToPage pour convertir les pixels appareil en unités de page

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