- a la derecha y debajo del nombre del campo
- usando el elemento espacio en blanco para limitar el área de búsqueda por abajo
- usando un elemento de párrafo
- En el elemento InvoiceHeader, cree un elemento de tipo Group y asígnele el nombre grAddress.
- Haga clic en la pestaña Relations y especifique las siguientes restricciones de búsqueda para los elementos del grupo:
- Encima del elemento kwDeliveryAddress, Offset = -400
- A la izquierda del límite derecho del elemento kwDeliveryAddress, Offset = -800, Reference boundary = Right.
- A la derecha del límite izquierdo del elemento kwDeliveryAddress, Offset = -50, Reference boundary = Left.
- Debajo del límite superior del elemento kwDeliveryAddress, Offset = -20, Reference boundary = Top.
Muéstrame...
Muéstrame...
- En el elemento InvoiceHeader.grAddress, cree un elemento de tipo espacio en blanco y asígnele el nombre wgAddressAbove.
- Haga clic en la pestaña espacio en blanco.
- En Orientation, seleccione Horizontal. Establezca Min height en 55. Nota. Al seleccionar valores para las alturas/anchuras de los espacios en blanco, puede ser útil tener en cuenta la geometría (es decir, los límites y tamaños) de los objetos de imagen adyacentes en el modo de resultados de prerreconocimiento.
- Vamos a buscar un espacio en blanco dentro de un párrafo; por lo tanto, en Search among objects of type, seleccione solo Text.
- En Rubbish, especifique los siguientes valores:
- Lower threshold limit – 20;
- Upper threshold limit – 80;
- Threshold coefficient (%) – 10.
Los valores de las propiedades Lower threshold limit, Upper threshold limit y Threshold coefficient (%) solo pueden seleccionarse mediante prueba y error. Recomendamos comenzar con los valores predeterminados. Si los valores predeterminados no funcionan, modifíquelos hasta que el espacio en blanco se detecte en todas las imágenes de prueba.
- No especifique ninguna restricción de búsqueda adicional y mantenga los valores predeterminados para las demás opciones.
- Haga clic en la pestaña Relations.
- Como el espacio en blanco solo puede estar situado debajo de las palabras clave del nombre kwDeliveryAddress, especifique las siguientes restricciones de búsqueda:
- Debajo del elemento kwDeliveryAddress, Offset = 20 Offset es necesario para evitar que el programa encuentre espacios en blanco en otras áreas de la imagen, por ejemplo, entre el nombre del campo y el texto. Haga clic en la pestaña Advanced.
- Como el campo Delivery Address no está presente en todas las imágenes, pero cuando aparece siempre va acompañado de su nombre, especifique la siguiente condición adicional en el campo relación avanzada de prebúsqueda:Busque el objeto de imagen solo si se detecta el elemento kwDeliveryAddress. En FlexiLayout language, esta condición puede escribirse de la siguiente manera: If InvoiceHeader.kwDeliveryAddress.IsNull Then DontFind;
- Ejecute Match en el FlexiLayout para comprobar si el elemento wgAddressAbove se detecta en todas las imágenes.
- Como el programa a veces encuentra más de un espacio en blanco en el área de búsqueda especificada y no siempre puede seleccionar el correcto, necesitamos imponer restricciones de búsqueda adicionales. Si examina las imágenes, observará que el espacio en blanco que nos interesa es el más alto dentro del área de búsqueda dada. Por lo tanto, en el campo relación avanzada de prebúsqueda, especifique la siguiente condición adicional:Busque un objeto de imagen que esté más cerca del límite superior de la primera página. En FlexiLayout language, esta condición puede escribirse de la siguiente manera: NearestY: Page(1).RectGlobal.Top;
- Excluya temporalmente el elemento InvoiceFooter y ejecute Match en el FlexiLayout.”
- En el elemento InvoiceHeader.grAddress, cree un elemento de tipo párrafo y asígnele el nombre DeliveryAddress.
- Haga clic en la pestaña Relations.
- Dado que DeliveryAddress solo puede estar situado encima del espacio en blanco wgAddressAbove, especifique la siguiente restricción de búsqueda:
- Encima de el elemento wgAddressAbove, Offset = 0.
- Dado que el área de búsqueda del elemento DeliveryAddress ya se ha especificado en el nivel del grupo InvoiceHeader.grAddress, no es necesario volver a especificarla aquí.
- Haga clic en la pestaña Advanced.
- Dado que el nombre del campo DeliveryAddress también se encuentra dentro del área de búsqueda, debemos excluirlo para obtener solo el valor de DeliveryAddress. Además, en el área de búsqueda también hay separadores y ruido que conviene excluir. Por estos motivos, no podemos simplemente excluir la región del elemento kwDeliveryAddress. Lo más adecuado sería tomar la región del elemento kwDeliveryAddress, ampliar esta región para que abarque todo el ruido y, a continuación, excluir el rectángulo resultante. Para ello, especifique las siguientes restricciones de búsqueda en el campo relación avanzada de prebúsqueda: If InvoiceHeader.kwDeliveryAddress.IsNull Then DontFind; Else // Dibuja un rectángulo alrededor del nombre del campo (con cierto desplazamiento respecto a los límites) { Let Left = InvoiceHeader.kwDeliveryAddress.Rect.Left - 100dt; Let Top = InvoiceHeader.kwDeliveryAddress.Rect.Top - 100dt; Let Right = InvoiceHeader.kwDeliveryAddress.Rect.Right + 20dt; Let Bottom = InvoiceHeader.kwDeliveryAddress.Rect.Bottom; // Excluye el rectángulo resultante del área de búsqueda del campo ExcludeRect (Left, Top, Right, Bottom); }
- Excluya temporalmente el elemento InvoiceFooter y ejecute Match en el FlexiLayout.
- Especifique la ubicación del bloque DeliveryAddress como la región rectangular del elemento DeliveryAddress detectado, simplificada para una mejor visualización y ampliada 5 puntos en vertical y en horizontal. Para ello, seleccione la opción Expression y escriba la siguiente expresión: Rect outputRect; OutputRegion = InvoiceHeader.grAddress.DeliveryAddress.SimplifiedRegion; IsNull = InvoiceHeader.grAddress.DeliveryAddress.IsNull; OutputRegion.Inflate (5dt, 5dt);
