> ## 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 un elemento [espacio en blanco](/es/flexi-capture/fls/template/white-gap) para limitar el área de búsqueda por abajo
* Usando un elemento de [párrafo](/es/flexi-capture/fls/template/text-chain)

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

<Steps>
  <Step title="Crear el elemento Group">
    En el elemento **InvoiceHeader**, cree un elemento [Group](/es/flexi-capture/fls/template/elements-compound) y asígnele el nombre **grAddress**.
  </Step>

  <Step title="Establecer las restricciones de búsqueda">
    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>
  </Step>
</Steps>

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

Un [espacio en blanco](/es/flexi-capture/fls/template/white-gap) horizontal delimita por abajo el área de búsqueda del elemento **DeliveryAddress**.

<Steps>
  <Step title="Crear el elemento de espacio en blanco">
    En el elemento `InvoiceHeader.grAddress`, cree un elemento [espacio en blanco](/es/flexi-capture/fls/template/white-gap) y asígnele el nombre **wgAddressAbove**.
  </Step>

  <Step title="Establecer la orientación y la altura">
    Haga clic en la pestaña **Espacio en blanco**. En **Orientación**, seleccione **Horizontal** y establezca **Altura mín.** en 55.

    <Tip>
      Al seleccionar los valores de altura y anchura de los espacios en blanco, tenga en cuenta la geometría (los límites y tamaños) de los objetos de imagen adyacentes en el modo de resultados de prerreconocimiento.
    </Tip>
  </Step>

  <Step title="Restringir el tipo de objeto">
    Puesto que busca un espacio en blanco dentro de un párrafo, en **Buscar entre objetos de tipo**, seleccione únicamente **Texto**.
  </Step>

  <Step title="Establecer los umbrales de ruido">
    En **Ruido**, especifique estos 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 ruido del 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. Comience 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>
  </Step>

  <Step title="Mantener los demás valores predeterminados">
    No especifique restricciones de búsqueda adicionales y conserve los valores predeterminados de las demás opciones.
  </Step>

  <Step title="Agregar una relación de posición">
    Haga clic en la pestaña **Relations**. Puesto que el espacio en blanco solo puede situarse debajo de las palabras clave del nombre **kwDeliveryAddress**, especifique esta restricción de búsqueda:

    * Debajo del elemento **kwDeliveryAddress**, **Offset** = 20.

    **Offset** evita que FlexiLayout Studio encuentre espacios en blanco en otras áreas de la imagen, por ejemplo, entre el nombre del campo y el texto.
  </Step>

  <Step title="Agregar la restricción de prebúsqueda">
    Haga clic en la pestaña **Advanced**. El campo **Dirección de entrega** no aparece en todas las imágenes, pero, cuando aparece, siempre va acompañado de su nombre. En el campo **relación avanzada de prebúsqueda**, especifique esta condición adicional: busque el objeto de imagen solo si se detecta el elemento **kwDeliveryAddress**. En [FlexiLayout language](/es/flexi-capture/fls/code/general-code):

    ```text theme={null}
    If InvoiceHeader.kwDeliveryAddress.IsNull Then DontFind;
    ```
  </Step>

  <Step title="Hacer coincidir el FlexiLayout">
    Haga coincidir el FlexiLayout para comprobar si el elemento **wgAddressAbove** se detecta en todas las imágenes.
  </Step>

  <Step title="Restringir al espacio más alto">
    FlexiLayout Studio a veces encuentra más de un espacio en blanco en el área de búsqueda y no siempre puede seleccionar el correcto, por lo que debe imponer restricciones de búsqueda adicionales. El espacio en blanco de interés es el que se encuentra más arriba en el área de búsqueda. En el campo **relación avanzada de prebúsqueda**, especifique esta 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):

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

  <Step title="Verificar la coincidencia">
    Excluya temporalmente el elemento **InvoiceFooter** y haga coincidir el FlexiLayout.
  </Step>
</Steps>

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

<Steps>
  <Step title="Crear el elemento de párrafo">
    En el elemento `InvoiceHeader.grAddress`, cree un elemento [Párrafo](/es/flexi-capture/fls/template/text-chain) y asígnele el nombre **DeliveryAddress**.
  </Step>

  <Step title="Agregar una relación de posición">
    Haga clic en la pestaña **Relations**. 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.

    Como el área de búsqueda del elemento **DeliveryAddress** ya se ha especificado en el grupo `InvoiceHeader.grAddress`, no es necesario volver a especificarla.
  </Step>

  <Step title="Excluir el nombre del campo del área de búsqueda">
    Haga clic en la pestaña **Advanced**. El nombre del campo **DeliveryAddress** también se encuentra dentro del área de búsqueda, por lo que debe excluirlo para obtener solo el valor del campo. El área de búsqueda también contiene separadores y ruido que conviene excluir. En lugar de excluir solo la región del elemento **kwDeliveryAddress**, tome esa región, amplíela para que abarque todo el ruido y excluya el rectángulo resultante. 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);
    }
    ```
  </Step>

  <Step title="Hacer coincidir el FlexiLayout">
    Excluya temporalmente el elemento **InvoiceFooter** y haga coincidir el FlexiLayout.
  </Step>

  <Step title="Establecer la región del bloque">
    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. 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);
    ```
  </Step>
</Steps>
