> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ejemplo 4. Paso 5.6: campo Dirección de entrega y elementos grAddress, wgAddressAbove y DeliveryAddress

> Extraiga la Dirección de entrega de varias líneas con un grupo grAddress, un espacio en blanco wgAddressAbove para delimitar el área de búsqueda y un elemento de párrafo DeliveryAddress.

Busque el campo **Dirección de entrega**:

* 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**

<div id="create-the-graddress-group-element">
  ## Crear el elemento de grupo grAddress
</div>

Para especificar las propiedades comunes a todos estos elementos, crearemos un elemento de grupo.

1. En el elemento **InvoiceHeader**, cree un elemento de tipo **Group** y asígnele el nombre **grAddress**.
2. 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**.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial4_5_6_1_.PNG?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=341cbe7bccc32ddf3e5af49b3bd40f7b" alt="Captura de pantalla de la pestaña Relations de las propiedades del elemento Group grAddress en ABBYY FlexiLayout Studio, que muestra las restricciones de Offset y Reference boundary que sitúan el grupo en relación con el elemento kwDeliveryAddress." width="431" height="455" data-path="images/flexi-capture/fls/tutorial4_5_6_1_.PNG" />
</Frame>

<div id="create-the-wgaddressabove-white-gap-element">
  ## Crear el elemento de espacio en blanco wgAddressAbove
</div>

Para limitar el área de búsqueda del elemento **DeliveryAddress** por la parte inferior, especifique un **espacio en blanco** horizontal.

1. En el elemento `InvoiceHeader.grAddress`, cree un elemento de tipo **Espacio en blanco** y asígnele el nombre **wgAddressAbove**.

2. Haga clic en la pestaña **Espacio en blanco**.

3. En **Orientación**, seleccione **Horizontal**. Establezca **Altura mín.** en 55.

   <Tip>
     Al seleccionar valores para la altura y la anchura de los espacios en blanco, tenga 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.
   </Tip>

4. Como está buscando un espacio en blanco dentro de un párrafo, en **Buscar entre objetos de tipo**, seleccione solo **Text**.

5. En **Rubbish**, especifique los siguientes valores:

   * **Límite inferior del umbral** – 20.
   * **Límite superior del umbral** – 80.
   * **Coeficiente del umbral (%)** – 10.

   <Frame>
     <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial4_5_6_2_.PNG?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=782a2385535990435cb356881b29b9c0" alt="Captura de pantalla de la pestaña Espacio en blanco de las propiedades del elemento wgAddressAbove en ABBYY FlexiLayout Studio, que muestra la orientación horizontal, la altura mínima y los valores de umbral de Rubbish para el espacio en blanco." width="431" height="455" data-path="images/flexi-capture/fls/tutorial4_5_6_2_.PNG" />
   </Frame>

   <Note>
     Los valores de las propiedades **Límite inferior del umbral**, **Límite superior del umbral** y **Coeficiente del umbral (%)** solo pueden determinarse mediante prueba y error. Empiece con los valores predeterminados. Si no funcionan, modifíquelos hasta que el espacio en blanco se detecte en todas las imágenes de prueba.
   </Note>

6. No especifique ninguna restricción de búsqueda adicional y conserve los valores predeterminados de las demás opciones.

7. Haga clic en la pestaña **Relations**.

8. Como el espacio en blanco solo puede estar 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 zonas de la imagen, por ejemplo, entre el nombre del campo y el texto. Haga clic en la pestaña **Advanced**.

9. Como el campo **Dirección de entrega** no aparece en todas las imágenes, pero cuando aparece siempre va acompañado de su nombre, especifique la siguiente condición adicional en el campo **Relations avanzadas de prebúsqueda**: busque el objeto de imagen solo si se detecta el elemento **kwDeliveryAddress**. En [FlexiLayout language](/es/flexi-capture/fls/code/general-code), esta condición puede escribirse de la siguiente manera:

   ```text theme={null}
   If InvoiceHeader.kwDeliveryAddress.IsNull Then DontFind;
   ```

10. Ejecute la coincidencia del FlexiLayout para comprobar si el elemento **wgAddressAbove** se detecta en todas las imágenes.

11. 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, aplique restricciones de búsqueda adicionales. Si examina las imágenes, verá que el espacio en blanco de interés es el que está más arriba dentro del área de búsqueda indicada. Por lo tanto, en el campo **Relations avanzadas de prebúsqueda**, especifique la siguiente condición adicional: busque el objeto de imagen más cercano al límite superior de la primera página. En [FlexiLayout language](/es/flexi-capture/fls/code/general-code), esta condición puede escribirse de la siguiente manera:

    ```text theme={null}
    NearestY: Page(1).RectGlobal.Top;
    ```

12. Excluya temporalmente el elemento **InvoiceFooter** y ejecute la coincidencia del FlexiLayout.

<div id="create-the-deliveryaddress-paragraph-element">
  ## Crear el elemento de párrafo DeliveryAddress
</div>

1. En el elemento `InvoiceHeader.grAddress`, cree un elemento de tipo **Párrafo** y asígnele el nombre **DeliveryAddress**.
2. Haga clic en la pestaña **Relations**.
3. Como **DeliveryAddress** solo puede estar ubicado encima del espacio en blanco **wgAddressAbove**, especifique la siguiente restricción de búsqueda:
   * **Encima del** elemento **wgAddressAbove**, **Offset** = 0.
4. Como el área de búsqueda del elemento **DeliveryAddress** ya se ha especificado en el grupo `InvoiceHeader.grAddress`, no es necesario volver a especificarla aquí.
5. Haga clic en la pestaña **Advanced**.
6. Como el nombre del campo **DeliveryAddress** también se encuentra dentro del área de búsqueda, exclúyalo 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 estas razones, no basta con excluir la región del elemento **kwDeliveryAddress**. Es más adecuado tomar la región del elemento **kwDeliveryAddress**, ampliarla para que abarque todo el ruido y, después, excluir el rectángulo resultante. Para ello, especifique las siguientes restricciones de búsqueda en el campo **relación avanzada de prebúsqueda**:

   ```text theme={null}
   If InvoiceHeader.kwDeliveryAddress.IsNull Then DontFind;
   Else
   // Dibuja un rectángulo alrededor del nombre del campo (con cierto desplazamiento en 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);
   }
   ```
7. Excluya temporalmente el elemento **InvoiceFooter** y haga coincidir el FlexiLayout.
8. Especifique la ubicación del bloque **DeliveryAddress** como la región rectangular del elemento **DeliveryAddress** detectado, simplificada para que se muestre con mayor claridad y ampliada en 5 puntos, tanto vertical como horizontalmente. Para ello, seleccione la opción **Expression** y escriba la siguiente expresión:

   ```text theme={null}
   Rect outputRect;
   OutputRegion = InvoiceHeader.grAddress.DeliveryAddress.SimplifiedRegion;
   IsNull = InvoiceHeader.grAddress.DeliveryAddress.IsNull;
   OutputRegion.Inflate (5dt, 5dt);
   ```
