Saltar al contenido principal
A veces puede necesitar crear un FlexiLayout para buscar campos que suelen aparecer en documentos tradicionales con un diseño fijo. Por ejemplo, puede que necesite describir un campo en el que las letras deban introducirse en pequeños marcos. Un ejemplo típico sería una empresa que recopila documentos de sus oficinas regionales. Aunque se espera que los documentos tengan el mismo aspecto, puede haber pequeñas diferencias de diseño de una oficina regional a otra, lo que significa que no pueden procesarse con una sola Definición de Document “rígida”. En este caso, un FlexiLayout puede ser preferible a varias Definiciones de Document “rígidas” ligeramente distintas.

Cuándo buscar límites con elementos de espacio en blanco

Si los campos de datos buscados en el documento son del tipo “framed letters” o “separate framed letters”, una búsqueda basada en separadores para localizar los límites de dichos campos puede ser muy complicada, y la descripción de los elementos puede volverse extensa, especialmente si los nombres de esos campos no están disponibles o no se reconocen con fiabilidad. Además, es muy importante que el bloque contenga no solo estos campos, sino también el marco completo. Si las líneas separadoras son finas, a veces pueden imprimirse incorrectamente o perderse durante el escaneo. En tales casos, se recomienda buscar los límites usando elementos de espacio en blanco. Estos límites del campo se describen en el FlexiLayout language especial en el campo Expression del cuadro de diálogo de propiedades del bloque. Puede describir el límite superior del campo como la parte inferior del espacio en blanco superior, el límite inferior como la parte superior del espacio en blanco inferior, el límite derecho del campo como el límite izquierdo del espacio en blanco derecho y el límite izquierdo del campo como el límite derecho del espacio en blanco izquierdo. Se puede encontrar un proyecto de FlexiLayout Studio que contiene imágenes de prueba y un FlexiLayout probado en %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks.

Derive los límites del campo a partir de cuatro elementos de espacio en blanco

Supongamos que se han encontrado los 4 espacios (LeftGapName, RightGapName, TopGapName, BottomGapName) necesarios para describir formalmente la ubicación del campo de datos en la imagen.
Diagrama de un campo de datos de una carta con marco delimitador, delimitado por cuatro elementos de espacio en blanco, donde los espacios izquierdo, derecho, superior e inferior definen los límites del campo.
El código del campo Expression tendrá entonces el siguiente aspecto:
Rect outputRect;
Let FieldLeft = LeftGapName.Rect.Right;
Let FieldRight = RightGapName.Rect.Left;
Let FieldTop = TopGapName.Rect.Bottom;
Let FieldBottom = BottomGapName.Rect.Top;
outputRect = Rect(FieldLeft, FieldTop, FieldRight, FieldBottom);
OutputRegion = outputRect;
En lugar de “LeftGapName”, “RightGapName”, “TopGapName” y “BottomGapName”, use los nombres de los elementos de espacio en blanco correspondientes. Si es necesario, puede ampliar la anchura y la altura del campo mediante la opción Inflate.

Búsqueda de líneas individuales en campos enmarcados de varias líneas

Si los campos de datos buscados en el documento son campos de varias líneas con marcado del tipo “framed letters” o “separate framed letters”, y las líneas no están separadas entre sí por espacios, entonces debe buscar los límites superior, inferior, derecho e izquierdo usando elementos de espacio en blanco. La búsqueda de líneas individuales debe especificarse entonces mediante un algoritmo especial en el campo Expression. En el ejemplo dado, la altura de cada línea individual puede calcularse dividiendo entre 2 la altura de todo el campo.
Diagrama de un campo de letras enmarcadas de varias líneas cuya altura de cada línea individual es igual a la altura total del campo dividida por el número de líneas.