Docs de PDFiumPas

FormFieldInfoAt propiedad

Registro de campo de formulario para el widget ubicado en la coordenada de página dada
Componente: TPdf  ·  Unidad: PDFium
Registro de campo de formulario para el widget ubicado en la coordenada de página dada

Sintaxis

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

Descripción

FormFieldInfoAt realiza una prueba de impacto en la página activa actual y devuelve el registro TPdfFormFieldInfo que describe la anotación widget en (X, Y). Las coordenadas están en el espacio de usuario PDF, con el origen en la esquina inferior izquierda de la página y unidades expresadas en puntos (1/72 inch). El registro refleja lo que devuelve FormFieldInfo[Index]: tipo de campo (fiTextField, fiCheckBox, …), nombre del campo, nombre alterno, banderas, etiquetas de opción, estado marcado, valor de exportación y tamaño de fuente

Cuando la coordenada no cae dentro de ningún rectángulo de widget, FormFieldInfoAt devuelve un TPdfFormFieldInfo inicializado por defecto, con FieldType = fiUnknown y cadenas vacías en todos los campos. Use HasFormFieldAt[X, Y] para una comprobación rápida sí o no antes de obtener el registro completo, o simplemente revise el FieldType devuelto

La búsqueda es O(n) sobre los widgets de la página y además decodifica metadatos Unicode de campo, así que cuesta más que HasFormFieldAt. En un controlador de movimiento del mouse, revise primero HasFormFieldAt; solo llame FormFieldInfoAt al hacer clic o al entrar con el mouse. Las coordenadas de una posición del mouse pasan primero por TPdfView.PointToPage para traducir píxeles del dispositivo a unidades de página

Notas

Ejemplo

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;

Vea también

HasFormFieldAt, FormFieldInfo, FormFieldAt, FormFieldCount