PDFium Component Docs

FormFieldInfoAt Eigenschaft

Dieser API-Eintrag behält Bezeichner, Signaturen, Codeblöcke und PDF-Begriffe in ihrer Originalform.
Komponente: TPdf  ·  Unit: PDFium
Formularfeld-Datensatz für das Widget an der angegebenen Seitenkoordinate

Syntax

property FormFieldInfoAt[X, Y: Single]: TPdfFormFieldInfo; // nur lesbar

Beschreibung

FormFieldInfoAt führt auf der aktuell aktiven Seite einen Hit-Test durch und gibt den TPdfFormFieldInfo-Datensatz für die Widget-Annotation bei (X, Y) zurück Die Koordinaten liegen im PDF-Benutzerraum, mit dem Ursprung in der linken unteren Ecke der Seite und Einheiten in Punkten (1/72 Zoll) Der Datensatz spiegelt wider, was FormFieldInfo[Index] zurückgibt — Feldtyp (fiTextField, fiCheckBox, …), Feldname, alternativer Name, Flags, Optionsbeschriftungen, Aktivierungsstatus, Exportwert und Schriftgröße

Wenn die Koordinate in kein Widget-Rechteck fällt, gibt FormFieldInfoAt einen standardmäßig initialisierten TPdfFormFieldInfo-Datensatz zurück — FieldType = fiUnknown und überall leere Zeichenketten Verwenden Sie HasFormFieldAt[X, Y] für eine günstige Ja/Nein-Prüfung, bevor Sie den vollständigen Datensatz abrufen, oder prüfen Sie einfach den zurückgegebenen FieldType

Die Suche ist O(n) über die Widgets der Seite und dekodiert zusätzlich Unicode-Feldmetadaten, ist also schwerer als HasFormFieldAt In einem Mouse-Move-Handler prüfen Sie zuerst HasFormFieldAt; rufen Sie FormFieldInfoAt nur bei Klick oder Hover-Eintritt auf Koordinaten aus einer Mausposition laufen zuerst durch TPdfView.PointToPage, um Gerätepixel in Seiteneinheiten umzuwandeln

Hinweise

Beispiel

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;

Siehe auch

HasFormFieldAt, FormFieldInfo, FormFieldAt, FormFieldCount