Saltar al contenido principal
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.

Cuándo usar RestrictSearchArea

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. Para obtener más información sobre el uso de la función RestrictSearchArea en estos casos, consulte Using Nearest and FuzzyQuality to search for elements. 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.

El proyecto SearchOfDate.fsp con restricciones duplicadas

La función RestrictSearchArea también puede utilizarse 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. Sin embargo, si la calidad de imagen es muy baja, es posible que estos dos elementos no sean suficientes. Para obtener más información sobre cómo organizar una búsqueda de campos de fecha, consulte Date search after high or low-quality recognition. Para ver esta función en acción, ejecute el proyecto de ejemplo SearchOfDate.fsp (carpeta %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\RestrictSearchArea). Este proyecto es 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, como se muestra en la siguiente figura.
Captura de pantalla de la pestaña Relations en las propiedades del elemento de búsqueda de ABBYY FlexiLayout Studio, que muestra las restricciones de búsqueda idénticas especificadas originalmente para los elementos DateField, DateAsString y DateAsObjectCollection en el proyecto SearchOfDate.fsp.

Sustituya las restricciones duplicadas por RestrictSearchArea

Sin embargo, en el proyecto actual, en lugar de duplicar las restricciones de búsqueda en la pestaña Relations para los elementos DateAsString y DateAsObjectCollection, se usa la función RestrictSearchArea, con el siguiente código en el campo relación avanzada de prebúsqueda de la pestaña Advanced:
if (DateField.IsNull == FALSE) then Dontfind();
else RestrictSearchArea (DateField.Rect);
Este código significa que se intentará buscar el campo de fecha como una cadena o como una colección de objetos solo si el programa no consigue detectarlo mediante el elemento Date. Luego, ambos elementos se buscarán en la misma área en la que no se detectó 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 delimitador coincidirá con el área de búsqueda. Por lo tanto, el área de búsqueda especificada para los elementos DateAsString y DateAsObjectCollection coincide con el rectángulo que encierra el área de búsqueda del elemento DateField no detectado.