Wie die Funktion Exclude Regionen aus einem Suchbereich ausschließt
Exclude schließt eine Region aus dem Suchbereich eines Elements aus. Die auszuschließende Region wird beim Aufruf der Funktion angegeben.
Die ausgeschlossene Region kann eine der folgenden sein:
- Die Region einer Hypothese (unabhängig davon, ob sie erkannt wurde oder nicht)
- Ein Rectangle oder ein Array von Rectangles der gefundenen Elemente
- Eine Region, die aus den Regionen von Objekten aufgebaut ist, die Teil einer gefundenen Hypothese sind (siehe Methode
ExcludeSet)

Das Beispielprojekt Exclude.fsp
Exclude.fsp (Ordner %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\Exclude) zeigt, wie die Funktion Exclude funktioniert.
Das Projekt hat vier Seiten:
- Seite 1 – Das Adressfeld erstreckt sich über mehrere Zeilen. Der Name Address: steht in der ersten Zeile, daher können wir nicht sagen, dass sich das gesuchte Datenfeld rechts vom oder unter dem Feldnamen befindet. Der Name muss jedoch trotzdem von der Erkennung ausgeschlossen werden.
- Seite 2 – Das Adressfeld hat keinen Namen.
- Seiten 3 und 4 – Die Zeile (Address) liegt innerhalb des Datenfelds. Sie muss jedoch von der Erkennung ausgeschlossen werden.
Elemente für die Feldnamen und das Adressfeld erstellen
Das Element für den Namen muss vor dem Element für das Adressfeld erstellt werden, da die Funktion
Exclude nur Verweise auf Elemente zulässt, die im FlexiLayout-Baum über dem aktuellen Element stehen.
Schließen Sie den Feldnamen aus dem Suchbereich von Address aus
Nachdem Sie die Eigenschaften des Elements gespeichert haben, führen Sie den Abgleich des FlexiLayouts erneut aus. Sie werden sehen, dass die Region des Blocks, die dem Adressfeld entspricht, eine nicht rechteckige Form annimmt, weil die Region des Namens daraus ausgeschnitten wurde.

Im Abschnitt Exclude regions of elements können Sie die Region einer gefundenen Hypothese für ein anderes Element aus dem Suchbereich des aktuellen Elements ausschließen. Um einen geometrisch komplexeren Bereich auszuschließen oder zuerst eine Region zu erkennen und sie dann aus dem Erkennungsprozess auszuschließen, verwenden Sie die Funktionen
Exclude, ExcludeRect und ExcludeSet im Feld Advanced pre-search relations.Die Region eines Blocks besteht definitionsgemäß aus Rechtecken, die übereinander angeordnet sind, sodass jede horizontale Linie die Region nur einmal schneiden kann; es kann also keine vertikalen „Zacken“ geben, die herausragen.Wenn sich daher die auszuschließende Zeile und die erforderlichen Informationen auf derselben oder annähernd derselben Höhe befinden, kann der Name bei der Erstellung des FlexiLayouts nicht ausgeschlossen werden. In diesem Fall kann der Name nach der Erkennung in FlexiCapture mithilfe der Regel „Substitute from the list“ ausgeschlossen werden.


