Lorsque l’élément Date ne peut pas détecter une date
Le projet d’exemple SearchOfDate.fsp
SearchOfDate.fsp (dossier %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\Date).
Le projet contient cinq pages :
L’objectif est de trouver la date dans toutes les images, y compris celles dont le format de date n’est pas pris en charge par l’élément Date.
Recherche des formats de date pris en charge avec l’élément Date
La configuration des contraintes de recherche pour tous les éléments dans la section Relations n’est pas difficile et n’est donc pas décrite ici. Vous pouvez la consulter directement dans le projet.
Rechercher d’autres formats de date avec un élément Character String
Si le contenu d’un champ de données peut être structuré et présente un format qui n’est pas pris en charge par l’élément Date, il est conseillé de décrire ce format à l’aide d’une expression régulière plutôt que de spécifier un alphabet.Toutefois, vous devez avoir la certitude que les images traitées sont de très bonne qualité, car une expression régulière suppose une correspondance à 100 % entre le champ et la structure décrite (les alphabets, en revanche, autorisent un certain pourcentage d’erreurs, spécifié dans les propriétés de l’élément). Les alphabets constituent donc un outil plus flexible lorsque la précision de la reconnaissance ne peut pas être garantie.Si vous savez que le mois dans la date sera écrit en toutes lettres dans la même langue que la langue de pré-reconnaissance, il peut être judicieux de diviser le champ de date en trois sections (jour, mois, année) et de rechercher séparément le champ du mois à l’aide d’un élément de type Static Text.Un tel élément Static Text doit décrire toutes les variantes possibles du mois (par exemple, les noms complets et abrégés du mois dans la langue considérée). Les champs du jour et de l’année peuvent ensuite être trouvés à droite et à gauche du mois au moyen d’éléments Character String.

Capturer les dates partiellement reconnues avec un élément Object Collection

La condition
if (DateAsString.IsNull == FALSE) then Dontfind() ne peut pas être ajoutée aux propriétés avancées de l’élément DateAsObjectCollection, car, comme le montre l’exemple, la string détectée peut ne contenir qu’une partie de la date.Définir la Region du bloc Date à partir de AlternativeDateGroup
SearchElements.DateGroup.AlternativeDateGroup, qui se compose des éléments DateField, DateAsString et DateAsObjectCollection, est spécifié dans l’arborescence du projet comme élément source du bloc Date.
Comme la méthode Dontfind() a été utilisée pour décrire les propriétés des éléments DateAsString et DateAsObjectCollection, la Region réelle du bloc détecté correspondra soit à la Region trouvée par l’hypothèse pour l’élément Date, soit à la combinaison des Regions des éléments DateAsObjectCollection et DateAsString.
Dans ce dernier cas, la Region de l’élément DateAsString est censée faire partie de la Region de l’élément DateAsObjectCollection ; la Region résultante sera donc celle de l’élément DateAsObjectCollection.
Dans ce cas, vous pouvez spécifier l’élément Group
SearchElements.DateGroup.AlternativeDateGroup comme élément source, car la situation est relativement simple. La Region du groupe est une combinaison des Regions de ses sous-éléments détectés.La méthode Dontfind() permet d’ignorer la recherche de certains sous-éléments. Ainsi, la Region de l’élément Group SearchElements.DateGroup.AlternativeDateGroup correspondra à celle du sous-élément. Dans l’exemple donné, la méthode Dontfind() aide non seulement à optimiser la mise en correspondance de FlexiLayout, mais simplifie aussi la description des blocs.
L’utilisation d’un élément Character String pour rechercher un champ de date, sans définir le format de la string ni utiliser d’élément Object Collection, comme dans l’exemple donné, peut donner de bons résultats si la zone de recherche du champ de date peut être clairement délimitée.Toutefois, s’il y a plusieurs chaînes de caractères dans la zone de recherche, le format de la string doit être décrit à l’aide d’une expression régulière ou d’un alphabet plus restreint. Sinon, l’hypothèse finale risque de ne pas être satisfaisante.Avec un élément Character String, vous pouvez limiter le nombre de caractères dans une string, le nombre de fins de mots et la longueur des espaces afin d’écarter les hypothèses erronées. Si un élément Object Collection est utilisé, l’hypothèse inclura tous les objets de l’image situés dans la zone de recherche et répondant aux contraintes de taille des objets.
