> ## 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.

# Beispiel 4. Schritt 5.6: Feld Lieferadresse sowie die Elemente grAddress, wgAddressAbove und DeliveryAddress

> Extrahieren Sie die mehrzeilige Lieferadresse mit einer grAddress-Gruppe, einem White Gap wgAddressAbove zur Begrenzung des Suchbereichs und einem DeliveryAddress-Paragraph-Element.

Suchen Sie nach dem Feld **Lieferadresse**:

* rechts vom Feldnamen und darunter
* unter Verwendung des Elements **White Gap**, um den Suchbereich nach unten zu begrenzen
* unter Verwendung eines Elements vom Typ **Paragraph**

<div id="create-the-graddress-group-element">
  ## Erstellen Sie das Gruppenelement grAddress
</div>

Um die Eigenschaften festzulegen, die allen diesen Elementen gemeinsam sind, erstellen Sie ein Gruppenelement.

1. Erstellen Sie im Element **InvoiceHeader** ein Element vom Typ **Group** und nennen Sie es **grAddress**.
2. Klicken Sie auf die Registerkarte **Beziehung** und geben Sie die folgenden Suchbedingungen für die Elemente der Gruppe an:
   * Oberhalb des Elements **kwDeliveryAddress**, **Versatz** = -400.
   * Links von der rechten Begrenzung des Elements **kwDeliveryAddress**, **Versatz** = -800, **Reference boundary** = **Right**.
   * Rechts von der linken Begrenzung des Elements **kwDeliveryAddress**, **Versatz** = -50, **Reference boundary** = **Left**.
   * Unterhalb der oberen Begrenzung des Elements **kwDeliveryAddress**, **Versatz** = -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="Screenshot der Registerkarte Beziehung der Eigenschaften des Gruppenelements grAddress in ABBYY FlexiLayout Studio, der die Versatz- und Reference-boundary-Suchbedingungen zeigt, mit denen die Gruppe relativ zum Element kwDeliveryAddress positioniert wird." width="431" height="455" data-path="images/flexi-capture/fls/tutorial4_5_6_1_.PNG" />
</Frame>

<div id="create-the-wgaddressabove-white-gap-element">
  ## Erstellen des White-Gap-Elements wgAddressAbove
</div>

Um den Suchbereich für das Element **DeliveryAddress** nach unten zu begrenzen, geben Sie ein horizontales **White Gap** an.

1. Erstellen Sie im Element `InvoiceHeader.grAddress` ein Element vom Typ **White Gap** und benennen Sie es als **wgAddressAbove**.

2. Klicken Sie auf die Registerkarte **White Gap**.

3. Wählen Sie unter **Orientierung** die Option **Horizontal** aus. Setzen Sie **Min. Höhe** auf 55.

   <Tip>
     Berücksichtigen Sie bei der Auswahl der Werte für Höhe und Breite von White Gaps die Geometrie (d. h. Begrenzungen und Größen) der benachbarten Bildobjekte im Modus für Vorerkennungsergebnisse.
   </Tip>

4. Da Sie nach einem White Gap innerhalb eines Absatzes suchen, wählen Sie unter **Unter Objekten vom Typ suchen** nur **Text** aus.

5. Geben Sie unter **Rubbish** die folgenden Werte an:

   * **Untere Schwellenwertgrenze** – 20.
   * **Obere Schwellenwertgrenze** – 80.
   * **Schwellenwertkoeffizient (%)** – 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="Screenshot der Registerkarte „White Gap“ der Eigenschaften des Elements wgAddressAbove in ABBYY FlexiLayout Studio mit horizontaler Ausrichtung, Mindesthöhe und den Rubbish-Schwellenwerten für das White Gap." width="431" height="455" data-path="images/flexi-capture/fls/tutorial4_5_6_2_.PNG" />
   </Frame>

   <Note>
     Die Werte für die Eigenschaften **Untere Schwellenwertgrenze**, **Obere Schwellenwertgrenze** und **Schwellenwertkoeffizient (%)** lassen sich nur durch Ausprobieren ermitteln. Beginnen Sie mit den Standardwerten. Wenn diese nicht funktionieren, passen Sie sie so lange an, bis das White Gap auf allen Testbildern erkannt wird.
   </Note>

6. Geben Sie keine zusätzlichen Suchbedingungen an und behalten Sie die Standardwerte für die übrigen Optionen bei.

7. Klicken Sie auf die Registerkarte **Beziehung**.

8. Da sich das White Gap nur unterhalb der Schlüsselwörter des Namens **kwDeliveryAddress** befinden kann, geben Sie die folgenden Suchbedingungen an:
   * Unterhalb des Elements **kwDeliveryAddress**, **Versatz** = 20
     **Versatz** ist erforderlich, damit das Programm keine White Gaps in anderen Bereichen des Bildes findet, zum Beispiel zwischen dem Feldnamen und dem Text. Klicken Sie auf die Registerkarte **Advanced**.

9. Da das Feld **Lieferadresse** nicht auf allen Bildern vorhanden ist, aber, wenn es vorkommt, immer zusammen mit seinem Namen erscheint, geben Sie im Feld **Advanced pre-search relations** die folgende zusätzliche Bedingung an: Suchen Sie nur dann nach dem Bildobjekt, wenn das Element **kwDeliveryAddress** erkannt wird. In der [FlexiLayout language](/de/flexi-capture/fls/code/general-code) kann diese Bedingung wie folgt geschrieben werden:

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

10. Gleichen Sie das FlexiLayout ab, um zu prüfen, ob das Element **wgAddressAbove** in allen Bildern erkannt wird.

11. Da das Programm im angegebenen Suchbereich manchmal mehr als ein White Gap findet und nicht immer das richtige auswählen kann, legen Sie zusätzliche Suchbedingungen fest. Wenn Sie die Bilder genauer betrachten, werden Sie feststellen, dass das gesuchte White Gap die oberste Lücke im angegebenen Suchbereich ist. Geben Sie daher im Feld **Advanced pre-search relations** die folgende zusätzliche Bedingung an: Suchen Sie nach einem Bildobjekt, das der oberen Begrenzung der ersten Seite am nächsten liegt. In der [FlexiLayout language](/de/flexi-capture/fls/code/general-code) kann diese Bedingung wie folgt geschrieben werden:

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

12. Schließen Sie das Element **InvoiceFooter** vorübergehend aus und gleichen Sie das FlexiLayout ab.

<div id="create-the-deliveryaddress-paragraph-element">
  ## Erstellen Sie das Paragraph-Element DeliveryAddress
</div>

1. Erstellen Sie im Element `InvoiceHeader.grAddress` ein Element vom Typ **Paragraph** und benennen Sie es **DeliveryAddress**.
2. Klicken Sie auf die Registerkarte **Beziehung**.
3. Da **DeliveryAddress** nur oberhalb der White Gap **wgAddressAbove** liegen kann, geben Sie die folgende Suchbedingung an:
   * **Oberhalb** des Elements **wgAddressAbove**, **Versatz** = 0.
4. Da der Suchbereich für das Element **DeliveryAddress** bereits auf Ebene der Gruppe `InvoiceHeader.grAddress` festgelegt wurde, muss er hier nicht erneut angegeben werden.
5. Klicken Sie auf die Registerkarte **Advanced**.
6. Da sich der Name des Felds **DeliveryAddress** ebenfalls innerhalb des Suchbereichs befindet, schließen Sie ihn aus, damit nur der Wert von **DeliveryAddress** erfasst wird. Außerdem befinden sich im Suchbereich Trennlinien und Störungen, die ebenfalls am besten ausgeschlossen werden. Deshalb können Sie nicht einfach nur die Region des Elements **kwDeliveryAddress** ausschließen. Sinnvoller ist es, die Region des Elements **kwDeliveryAddress** zu übernehmen, sie so zu vergrößern, dass sie alle Störungen umfasst, und anschließend das daraus resultierende Rechteck auszuschließen. Geben Sie dazu die folgenden Suchbedingungen im Feld **Advanced pre-search relations** an:

   ```text theme={null}
   If InvoiceHeader.kwDeliveryAddress.IsNull Then DontFind;
   Else
   // Zeichnet ein Rechteck um den Feldnamen (mit etwas Versatz für die Begrenzungen)
   { 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;
   // Schließt das resultierende Rechteck aus dem Suchbereich des Felds aus
   ExcludeRect (Left, Top, Right, Bottom);
   }
   ```
7. Schließen Sie das Element **InvoiceFooter** vorübergehend aus und gleichen Sie das FlexiLayout ab.
8. Legen Sie die Position des Blocks **DeliveryAddress** als rechteckige Region des erkannten Elements **DeliveryAddress** fest, vereinfacht für eine übersichtlichere Darstellung und vertikal sowie horizontal um 5 dots erweitert. Wählen Sie dazu die Option **Expression** aus und geben Sie den folgenden Ausdruck ein:

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