Wenn das Date-Element ein Datum nicht erkennen kann
Das Beispielprojekt SearchOfDate.fsp
SearchOfDate.fsp beschrieben (Ordner %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\Date).
Das Projekt enthält fünf Seiten:
Ziel ist es, das Datum in allen Bildern zu finden, auch in solchen, deren Datumsformat vom Date-Element nicht unterstützt wird.
Suche nach unterstützten Datumsformaten mit dem Date-Element
Das Einrichten der Suchbedingungen für alle Elemente im Abschnitt Relations ist nicht schwierig und wird daher hier nicht beschrieben. Sie können es direkt im Projekt nachsehen.
Nach anderen Datumsformaten mit einem Character String-Element suchen
Wenn der Inhalt eines Datenfelds strukturiert sein kann und ein Format hat, das vom Element Date nicht unterstützt wird, empfiehlt es sich, dieses Format mit einem regulären Ausdruck zu beschreiben, anstatt ein Alphabet anzugeben.Sie müssen jedoch sicher sein, dass die verarbeiteten Bilder eine hohe Qualität haben, da ein regulärer Ausdruck eine 100%ige Übereinstimmung zwischen dem Feld und der beschriebenen Struktur voraussetzt (Alphabete hingegen erlauben einen gewissen Prozentsatz an Fehlern, der in den Eigenschaften des Elements angegeben wird). Daher sind Alphabete in Fällen, in denen die Genauigkeit der Erkennung nicht garantiert werden kann, das flexiblere Werkzeug.Wenn Sie wissen, dass der Monat im Datum als Wort in derselben Sprache wie die Sprache der Vorerkennung geschrieben wird, kann es ratsam sein, das Datumsfeld in drei Abschnitte (Tag, Monat, Jahr) zu unterteilen und das Monatsfeld mithilfe eines Elements vom Typ Static Text separat zu suchen.Ein solches Static-Text-Element sollte alle möglichen Varianten des Monats beschreiben (zum Beispiel ausgeschriebene und abgekürzte Monatsnamen in der jeweiligen Sprache). Die Felder für Tag und Jahr können dann rechts bzw. links vom Monat mithilfe von Character String-Elementen gefunden werden.

Teilweise erkannte Datumsangaben mit einem Object-Collection-Element erfassen

Die Bedingung
if (DateAsString.IsNull == FALSE) then Dontfind() kann nicht zu den Advanced-Eigenschaften des Elements DateAsObjectCollection hinzugefügt werden, weil die erkannte Zeichenfolge, wie das Beispiel zeigt, nur einen Teil des Datums enthalten kann.Date-Blockregion aus AlternativeDateGroup definieren
SearchElements.DateGroup.AlternativeDateGroup, das aus den Elementen DateField, DateAsString und DateAsObjectCollection besteht, ist im Projektbaum als Source element für den Date-Block angegeben.
Da die Methode Dontfind() verwendet wurde, um die Eigenschaften der Elemente DateAsString und DateAsObjectCollection zu beschreiben, entspricht die tatsächliche Region des erkannten Blocks entweder der Region, die durch die Hypothese für das Element Date gefunden wurde, oder der Kombination der Regionen der Elemente DateAsObjectCollection und DateAsString.
Im letzteren Fall wird davon ausgegangen, dass die Region des Elements DateAsString Teil der Region des Elements DateAsObjectCollection ist, sodass die resultierende Region der Region des Elements DateAsObjectCollection entspricht.
In diesem Fall können Sie das Gruppenelement
SearchElements.DateGroup.AlternativeDateGroup als Source element angeben, da die Situation relativ einfach ist. Die Region der Gruppe ist eine Kombination der Regionen ihrer erkannten Subelemente.Mit der Methode Dontfind() kann die Suche nach einigen Subelementen übersprungen werden. Dadurch entspricht die Region des Gruppenelements SearchElements.DateGroup.AlternativeDateGroup der Region des Subelements. Im angegebenen Beispiel hilft die Methode Dontfind() nicht nur dabei, den Abgleich des FlexiLayouts zu optimieren, sondern vereinfacht auch die Beschreibung von Blöcken.
Die Verwendung eines Character String-Elements zur Suche nach einem Datumsfeld, ohne das Zeichenkettenformat zu definieren oder ein Object Collection-Element zu verwenden, wie im angegebenen Beispiel, kann zu guten Ergebnissen führen, wenn sich der Suchbereich des Datumsfelds klar definieren lässt.Wenn sich jedoch mehrere Zeichenketten im Suchbereich befinden, sollte das Zeichenkettenformat mithilfe eines regulären Ausdrucks oder eines enger gefassten Alphabets beschrieben werden. Andernfalls kann die endgültige Hypothese unbefriedigend sein.Mit einem Character String-Element können Sie die Anzahl der Zeichen in einer Zeichenkette, die Anzahl der Wortenden und die Länge von Leerzeichen begrenzen, um falsche Hypothesen herauszufiltern. Wenn ein Object Collection-Element verwendet wird, enthält die Hypothese alle Objekte im Bild, die sich innerhalb des Suchbereichs befinden und die Einschränkungen für die Objektgröße erfüllen.
