FlexiLayout-Blocktypen
Das Erweitern der Regionen von Textblöcken kann die Erkennungsqualität verbessern. Um eine Region zu erweitern, doppelklicken Sie auf das Element Block, um das Dialogfeld Properties zu öffnen, und geben Sie die vertikalen und horizontalen Werte für die Eigenschaft Blocks result region inflate an.
Blöcke, für die in mindestens einer Layout-Alternative kein Bildbereich angegeben ist, haben in der oberen rechten Ecke des Symbols ein leeres Quadrat:
Daten aus den Blöcken werden in einer Datenerfassungsanwendung wie ABBYY FlexiCapture extrahiert.
Blockeigenschaften
Die Eigenschaft Sortierreihenfolge der Instanzen hat die folgenden Werte:
Wenn Sie bei In der Reihenfolge des Auffindens zusätzliche Bedingungen für Instanzen angeben, werden die Hypothesen in der benutzerdefinierten Reihenfolge erzeugt. Wenn Sie eine andere Reihenfolge als die vom Programm verwendete Standardreihenfolge benötigen, können Sie diese mithilfe zusätzlicher Bedingungen festlegen.
Die folgenden Eigenschaften legen den Bereich im Bild fest, aus dem Daten extrahiert werden sollen.
For Layout
Source element
AllInstances). Weitere Informationen finden Sie unter Instanzen einer wiederholbaren Gruppe als Referenz-, Ausschluss- oder Quellelemente verwenden.
Ausdruck
Die Region eines Blocks ist zusammenhängend. Das bedeutet: Wenn Sie eine Region aus getrennt liegenden Rectangles erstellen, werden die Zwischenräume durch schmale zusätzliche Rectangles gefüllt, damit die Region zusammenhängend wird.
Parameter von Blöcken vom Typ Gruppe und wiederholbare Gruppe
OutputInstances erstellt. Wenn ein Block innerhalb einer wiederholbaren Gruppe von Blöcken die Option Has repeating instances hat, bedeutet das, dass er sich innerhalb jeder Instanz des übergeordneten Blocks wiederholen kann.
Eine Blockregion mithilfe von Instanzen einer wiederholbaren Gruppe angeben
LastFound), wird die Blockregion wie bei jedem anderen Element definiert.
Sie können jedoch auch alle erkannten Instanzen verwenden (AllInstances). Um mehrere Instanzen zu verwenden, aktivieren Sie die Option Has repeating instances.
Sie können auch Code für den Block schreiben und dabei die vordefinierte Variable OutputInstances verwenden. Zum Beispiel:
- Bei Blöcken, die keine Tabellenblöcke sind, sind die angegebenen Instanzen die Instanzen des entsprechenden Felds.
- Bei einem Tabellenblock werden die angegebenen Instanzen als eine einzige Instanz des Felds behandelt. Das heißt, ABBYY FlexiCapture verarbeitet einen solchen Block als ein Feld vom Typ Table mit einer nicht zusammenhängenden Region.
Regeln zum Erstellen von Verweisen auf Elemente für wiederholbare Gruppen von Blöcken
AllInstances sein.
Da die unter dem Element mit AllInstances verschachtelten Elemente keine anderen IDs haben können, bedeutet diese Bedingung auch, dass das unterste wiederholbare Element AllInstances haben muss.
Untergeordnete Blöcke einer wiederholbaren Gruppe von Blöcken verweisen auf untergeordnete Elemente der wiederholbaren Gruppe von Elementen, auf die der übergeordnete Block verweist. Der Verweis muss für die Instanzen dieselbe ID haben.
Wenn ein Block einer wiederholbaren Gruppe beispielsweise den Verweis SearchElements..RepGr1.Instance(1).RepGr2.AllInstances hat, können sich seine untergeordneten Blöcke nur wie folgt auf das Element RepGr1..RepGr2.Element beziehen:
HasRepeatingInstances vorhanden ist, können Sie nur auf Subelemente der Basisgruppe verweisen, die selbst keine Wiederholungen enthalten, und umgekehrt.
Wenn ein Attribut HasRepeatingInstances vorhanden ist, können Sie auf Elemente verweisen, die innerhalb der Basisgruppe Wiederholungen enthalten (dabei können Sie nur auf alle Instanzen gleichzeitig verweisen).
With a HasRepeatingInstances attribute
Without a HasRepeatingInstances attribute
Wenn Referenzen über Source element erstellt werden, erfolgt die Prüfung beim Erstellen des FlexiLayouts. Wenn Referenzen mit Advanced-Code erstellt werden, wird beim Abgleich des FlexiLayouts ein Fehler festgestellt.
Eine Blockregion mit der FlexiLayout-Sprache beschreiben
Weitere Informationen zu den vordefinierten Variablen, die im Feld Ausdruck verwendet werden können, finden Sie unter Vordefinierte Variablen.
Die Variable IsNull verwenden
IsNull verwenden, um die Region eines Blocks zu beschreiben. Diese Variable gibt an, ob die Region des Blocks beim Abgleich des FlexiLayouts gefunden wurde. Der Wert false bedeutet, dass die Region gefunden wurde. Der Wert true bedeutet, dass sie nicht gefunden wurde.
Die Variable IsNull wird mit dem Wert false initialisiert. Das bedeutet, dass die Region des Blocks zunächst als gefunden gilt. Manchmal müssen Sie jedoch bestimmte Bedingungen prüfen, bevor Sie eine Entscheidung treffen.
Wenn das Programm die Region des Blocks nur dann als gefunden betrachten soll, wenn die Breite der Region des Source element größer als 50 dots ist, geben Sie den folgenden Code in das Feld Region expression ein:
Element1 gefunden wurde, geben Sie den folgenden Code in das Feld Region expression ein:
Element1 und Element2 verwenden, um nach einem Block zu suchen. Wenn mindestens eines der Elemente nicht gefunden wurde, gilt der Block als nicht gefunden:
Dieser Code funktioniert nur dann korrekt, wenn sich der Suchbereich von
Element1 oberhalb und links vom Suchbereich von Element2 befindet.Im vorherigen Beispiel wird diese Bedingung der Einfachheit halber nicht geprüft. Im tatsächlichen Code ist diese Prüfung jedoch erforderlich, und die Werte der Variablen FieldLeft, FieldRight, FieldTop und FieldBottom müssen entsprechend angepasst werden. Andernfalls führt der Aufruf der Funktion Rect zu einem Fehler.