Passer au contenu principal
À cette étape, nous devons déterminer :
  • Existe-t-il un motif dans la disposition des champs sur les images ?
  • Quels éléments peuvent servir d’éléments de référence pour la détection des champs ?
  • Quelle séquence de recherche des éléments est le meilleur choix ? (À chaque nouvelle étape, nous ne pouvons nous référer qu’aux éléments décrits ci-dessus.)
Analysons les images disponibles.
  1. Vous avez sans doute remarqué que la partie centrale du document contient un tableau présent sur toutes les images. Remarque. Notez que dans FlexiLayout Studio, un tableau est un image object composé de fragments constitués de lignes et de colonnes visuellement séparées par des lignes de séparation ou par des White Gap. (Voir Tableau pour plus de détails.)
  2. Au-dessus du tableau, se trouve un groupe de champs (qui peut être nommé InvoiceHeader) : Numéro de facture, Date de la facture et Adresse de livraison. Notez que le champ Numéro de facture apparaît sur toutes les images et peut être utilisé comme champ d’identification, tandis que les champs Date de la facture et Adresse de livraison sont facultatifs.
  3. Sous le tableau, se trouve un groupe de champs (qui peut être nommé Footer) : TotalQuantity, TotalAmount et Country. Ces champs n’apparaissent pas non plus sur toutes les images.
Nous allons commencer à créer notre recherche d’éléments dans la partie supérieure du document. Pour détecter les champs supérieurs, nous créerons un groupe logique réunissant tous les éléments utilisés pour rechercher les champs Numéro de facture, Date de la facture et Adresse de livraison.
  1. Créez un élément de type Group et nommez-le InvoiceHeader. Les champs Numéro de facture, Date de la facture et Adresse de livraison sont toujours situés dans le coin supérieur gauche. De plus, leur ordre est toujours le même : Adresse de livraison, suivie de Numéro de facture, puis de Date de la facture (à condition qu’ils apparaissent sur l’image). Nous les rechercherons dans le même ordre.
  2. Pour décrire la recherche des mots-clés correspondant aux noms des champs Numéro de facture, Date de la facture et Adresse de livraison, nous utiliserons des éléments de type Static Text. L’élément InvoiceHeader doit contenir les éléments suivants :
    • l’élément kwDeliveryAddress de type Static Text, qui correspondra au nom du champ Adresse de livraison (pour des instructions détaillées, voir Étape 5) ;
    • l’élément kwInvoiceNumber de type Static Text, qui correspondra au nom du champ Numéro de facture (pour des instructions détaillées, voir Étape 6) ;
    • l’élément kwDate de type Static Text, qui correspondra au nom du champ Date de la facture (pour des instructions détaillées, voir Étape 7).
  3. Quant aux champs Numéro de facture et Date de la facture, nous allons les rechercher sur la même ligne que leurs noms respectifs, à droite de ceux-ci. Dans l’élément InvoiceHeader, créez les éléments suivants :
    • l’élément InvoiceNumber de type Character String, qui correspondra au champ Numéro de facture (pour des instructions détaillées, voir Étape 8) ;
    • un élément Group grDate pour rechercher le champ Date de la facture (pour des instructions détaillées, voir Étape 9).
Dans l’élément InvoiceHeader.grDate, créez :
  • élément InvoiceDate de type Date, qui correspondra au champ Date de la facture dans le cas d’images de bonne qualité (pour des instructions détaillées, voir Étape 9) ;
  • élément InvoiceDateAsString de type Character String, qui correspondra au champ Date de la facture si le programme ne parvient pas à trouver l’élément InvoiceDate (pour des instructions détaillées, voir Étape 9). Remarque. Pour plus d’informations sur la recherche de dates dans des images de mauvaise qualité, consultez la section Astuces et conseils.
  1. Le champ Adresse de livraison comporte plusieurs lignes. Nous avons donc besoin d’un élément de type Paragraph pour le détecter. Toutefois, avant de créer cet élément, nous devons limiter autant que possible la zone de recherche. Pour définir la limite droite de la zone de recherche, nous utiliserons un élément de type White Gap. Ensuite, nous regrouperons tous les éléments qui décrivent l’emplacement du champ Adresse de livraison dans un élément Group :
    • Dans l’élément InvoiceHeader, créez un élément Group et nommez-le grAddress (pour des instructions détaillées, voir Étape 10).
Dans l’élément grAddress, créez les éléments suivants :
  • un élément auxiliaire wgAddressRight de type White Gap, situé à droite du champ Adresse de livraison (pour des instructions détaillées, voir Étape 11) ;
  • un élément DeliveryAddress de type Paragraph, qui correspondra au champ Adresse de livraison (pour des instructions détaillées, voir Étape 12).