
Tips and tricks
Restricción del área de búsqueda mediante RestrictSearchArea
Use RestrictSearchArea en FlexiLayout Studio para definir un área de búsqueda como un rectángulo, un array de rectángulos o una región y evitar duplicar restricciones de elementos.
La función RestrictSearchArea le permite especificar el área de búsqueda como un rectángulo, un array de rectángulos o una región.
En distintas páginas del documento, el campo buscado suele estar ubicado en posiciones diferentes con respecto a su nombre. Por ejemplo, en algunas páginas el campo puede estar a la derecha del nombre y, en otras, debajo de este. En tales casos, es aconsejable especificar el área de búsqueda como un array de rectángulos. Consulte Using Nearest and FuzzyQuality to look for elements para obtener información sobre el uso de la función RestrictSearchArea en estos casos.
También puede ser aconsejable usar la función RestrictSearchArea en lugar de duplicar restricciones de búsqueda idénticas para varios elementos.
Use esta función para describir el área de búsqueda del campo de fecha o de cualquier otro campo cuando, por alguna razón (por ejemplo, baja calidad de imagen o peculiaridades del diseño), no sea suficiente usar un elemento de un solo tipo.
Veamos cómo puede utilizarse la función RestrictSearchArea para buscar un campo de fecha. Normalmente se recomienda buscar campos de fecha con ayuda de al menos dos tipos de elementos: Date y Character String. Pero si la calidad de imagen es muy baja, es posible que estos dos elementos no sean suficientes. Consulte Detecting dates in the case of low quality pre-recognition para obtener más detalles sobre cómo organizar una búsqueda de campos de fecha.
Veamos esta función en acción ejecutando el proyecto de ejemplo SearchOfDate.fsp (carpeta %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\RestrictSearchArea). Este proyecto es, en realidad, una copia del proyecto con el mismo nombre de la carpeta de proyecto Date\FCS. Las restricciones de búsqueda para todos sus elementos (DateField, DateAsString y DateAsObjectCollection) eran idénticas y tenían el aspecto que se muestra en la siguiente figura.

Pero en el proyecto actual, en lugar de duplicar las restricciones de búsqueda en la pestaña Relations para los elementos DateAsString y DateAsObjectCollection, usamos la función RestrictSearchArea escribiendo el siguiente código en el campo Advanced pre-search relations de la pestaña Advanced:
if (DateField.IsNull == FALSE) then Dontfind();
else RestrictSearchArea (DateField.Rect);
Este código significa que solo se intentará buscar el campo de fecha como una cadena o como una colección de objetos si el programa no logra detectarlo mediante el elemento Date. Y ambos elementos se buscarán precisamente en el área en la que no se haya detectado el elemento DateField. Esto sucede porque el método DateField.Rect devuelve el rectángulo que encierra la hipótesis del elemento DateField. Como no se ha encontrado la hipótesis, el rectángulo envolvente coincidirá con el área de búsqueda. Por lo tanto, especificamos un área de búsqueda para los elementos DateAsString y DateAsObjectCollection que coincide con el rectángulo que encierra el área de búsqueda del elemento DateField no detectado.

Búsqueda de elementos de texto estático de una sola línea
Anterior
Búsqueda de campos de una sola línea con formato conocido o desconocido en documentos con calidad de OCR variable
Siguiente
