- Dans l’élément InvoiceHeader, créez un élément de type Character String et nommez-le InvoiceNumber.
- Cliquez sur l’onglet Character String.
- Spécifiez l’alphabet : -./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
- Définissez Percentage of non-alphabet characters sur 30 %.
-
Dans le champ Character count, spécifiez l’intervalle flou
{-1, 3, 20, INF}pour la longueur de la chaîne de caractères, en supposant que les valeurs possibles se situent dans la plage de 3 à 20 caractères. Toute hypothèse en dehors de cet intervalle sera pénalisée. -
Sur certaines images, la zone de recherche du champ Numéro de facture contient l’élément kwInvoiceDate déjà détecté. Excluez cet élément de la zone de recherche afin que le programme n’inclue pas ce texte dans ses hypothèses pour le champ Numéro de facture :
- Dans l’onglet Search Constraints, cliquez sur le bouton Add… situé à côté du champ Exclude regions of elements.
- Sélectionnez kwInvoiceDate dans la liste des éléments.
- Cliquez sur OK. La chaîne
SearchElements.InvoiceHeader.kwInvoiceDateapparaît dans le champ Exclude regions of elements.

- Cliquez sur l’onglet Advanced.
-
Dans relations avancées de pré-recherche, spécifiez des conditions supplémentaires : si le nom kwInvoiceNumber n’est pas trouvé, ne recherchez pas le champ InvoiceNumber ; sinon, définissez la zone de recherche comme un tableau de rectangles : un rectangle à droite du nom et un autre sous le nom, avec un léger décalage. Dans le langage FlexiLayout, cette condition peut s’écrire comme suit :
-
La zone de recherche du champ est limitée à deux rectangles, l’un à droite du nom du champ et l’autre en dessous. Si les données du champ se trouvent à droite du nom du champ, il y a souvent un autre texte sous ce champ (dans les images de test, il s’agit le plus souvent du nom et des données du champ Date). Comme ce texte parasite sera inclus dans la zone de recherche du champ Numéro de facture, le programme générera une hypothèse pour ce texte. Pour influer sur la qualité de cette hypothèse, spécifiez des vérifications supplémentaires dans le champ Advanced post-search relations : plus le texte situé sous le nom du champ est bas, plus la pénalité est forte. Dans le langage FlexiLayout, cette condition peut s’écrire comme suit :
- Excluez temporairement l’élément InvoiceFooter et exécutez la mise en correspondance du FlexiLayout.
-
Spécifiez l’emplacement du bloc InvoiceNumber comme une région rectangulaire de l’élément InvoiceNumber, agrandie de 5 points verticalement et horizontalement. Pour ce faire, sélectionnez Expression et saisissez l’expression suivante :
