Types de blocs FlexiLayout
L’agrandissement des régions des blocs de texte peut améliorer la qualité de la reconnaissance. Pour agrandir une région, double-cliquez sur l’élément Blocks pour ouvrir sa boîte de dialogue Properties, puis spécifiez les valeurs verticales et horizontales de la propriété Blocks result region inflate.
Les blocs pour lesquels aucune zone d’image n’est définie dans au moins une variante de mise en page comportent un carré vide dans le coin supérieur droit de l’icône :
Les données des blocs sont extraites dans une application de capture de données telle qu’ABBYY FlexiCapture.
Propriétés du bloc
La propriété Ordre de tri des instances possède les valeurs suivantes :
Avec Dans l’ordre de détection, si vous spécifiez des conditions supplémentaires pour les instances, les hypothèses sont générées dans l’ordre défini par l’utilisateur. Si vous avez besoin d’un ordre différent de l’ordre standard utilisé par le programme, vous pouvez le spécifier au moyen de conditions supplémentaires.
Les propriétés suivantes spécifient la zone de l’image à partir de laquelle les données doivent être extraites.
Pour la mise en page
Élément source
AllInstances). Pour plus d’informations, voir Utiliser des instances d’un groupe répétitif comme éléments de référence, exclus ou source.
Expression
La région d’un bloc est continue. Cela signifie que si vous créez une région à partir de rectangles disjoints, les espaces entre eux sont remplis par de fins rectangles supplémentaires afin de rendre la région continue.
Paramètres des blocs de type groupe et groupe répétitif
OutputInstances est toujours créée pour eux. Si un bloc à l’intérieur d’un groupe répétitif de blocs possède l’option Avoir des instances répétées, cela signifie qu’il peut se répéter au sein de chaque instance du bloc parent.
Spécifier une région de bloc à l’aide d’instances d’un groupe répétitif
LastFound), la région de bloc est définie comme pour n’importe quel autre élément.
Vous pouvez toutefois utiliser toutes les instances détectées (AllInstances). Pour utiliser plusieurs instances, sélectionnez l’option Avoir des instances répétées.
Vous pouvez également écrire du code pour le bloc à l’aide de la variable prédéfinie OutputInstances. Par exemple :
- Pour les blocs non tabulaires, les instances spécifiées sont celles du champ correspondant.
- Pour un bloc de tableau, les instances spécifiées sont traitées comme une seule instance du champ. Autrement dit, ABBYY FlexiCapture traite un tel bloc comme un champ de type Table avec une région discontinue.
Règles de création de références à des éléments pour les groupes répétitifs de blocs
AllInstances.
Comme les éléments imbriqués sous l’élément avec AllInstances ne peuvent pas avoir d’autres ID, cette condition signifie également que l’élément répétitif le plus bas a AllInstances.
Les blocs enfants d’un groupe répétitif de blocs font référence aux éléments enfants du groupe répétitif d’éléments auquel le bloc parent fait référence. La référence doit avoir le même ID pour les instances.
Par exemple, si un bloc de groupe répétitif a la référence SearchElements..RepGr1.Instance(1).RepGr2.AllInstances, ses blocs enfants peuvent faire référence à l’élément RepGr1..RepGr2.Element uniquement de la manière suivante :
HasRepeatingInstances, vous pouvez uniquement faire référence aux sous-éléments du Group de base qui ne contiennent pas de répétitions, et réciproquement.
S’il y a un attribut HasRepeatingInstances, vous pouvez faire référence aux éléments qui contiennent des répétitions dans le Group de base (et vous pouvez uniquement faire référence à toutes les instances à la fois).
With a HasRepeatingInstances attribute
Without a HasRepeatingInstances attribute
Si des références sont créées via élément source, la vérification est effectuée au moment de la création du FlexiLayout. Si des références sont créées à l’aide du code Advanced, une erreur est détectée lors de la mise en correspondance du FlexiLayout.
Décrire la région d’un bloc avec le langage FlexiLayout
Pour plus d’informations sur les variables prédéfinies pouvant être utilisées dans le champ Expression, consultez Variables prédéfinies.
Utiliser la variable IsNull
IsNull, pour décrire la région d’un bloc. Cette variable indique si la région du bloc a été trouvée lors de la mise en correspondance du FlexiLayout. La valeur false signifie que la région a été trouvée. La valeur true signifie qu’elle n’a pas été trouvée.
La variable IsNull est initialisée avec la valeur false ; la région du bloc est donc considérée comme trouvée. Cependant, il peut parfois être nécessaire de vérifier certaines conditions avant de parvenir à une conclusion.
Pour indiquer au programme de considérer la région du bloc comme trouvée si la largeur de la région de l’élément source dépasse 50 dots, saisissez le code suivant dans le champ Expression de région :
Element1 a été trouvé, saisissez le code suivant dans le champ Expression de région :
Element1 et Element2 pour rechercher un bloc. Si au moins un des éléments n’a pas été trouvé, le bloc est considéré comme non trouvé :
Ce code ne fonctionnera correctement que si la zone de recherche de
Element1 se situe au-dessus et à gauche de la zone de recherche de Element2.Dans l’exemple précédent, la vérification de cette condition n’est pas incluse par souci de simplicité. Dans le code réel, cette vérification est nécessaire et les valeurs des variables FieldLeft, FieldRight, FieldTop et FieldBottom doivent être ajustées. Sinon, l’appel de la fonction Rect renverra une erreur.