> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Exemple 3. Étape 13 : Analyse approfondie des images

> Cartographiez les éléments restants de la facture dans l’exemple 3 : stratégie de détection de l’en-tête et du pied du tableau, éléments de nom de colonne et plan du groupe Footer.

Jusqu’à présent, les champs Numéro de facture, Date de la facture et Adresse de livraison ont été décrits.

Décidez maintenant dans quel ordre les autres éléments doivent être détectés.

L’analyse de la disposition des champs sur les images de test montre que, pour détecter le champ pays, vous pouvez utiliser le nom de ce champ et un élément de type [Character String](/fr/flexi-capture/fls/template/character-chain).

Mais pour détecter les champs quantité totale et montant total, vous devrez utiliser non seulement le nom, commun aux deux champs, mais aussi des éléments supplémentaires. À cette fin, les noms des colonnes correspondantes du tableau peuvent être utilisés.

<div id="plan-the-search-for-the-invoice-table-field">
  ## Planifier la recherche du champ tableau de facture
</div>

Vous devez également préparer la recherche du champ tableau de facture, qui doit être détecté au moyen d’un élément de type [Tableau](/fr/flexi-capture/fls/tables/general-tables).

1. **Décrivez l’en-tête du tableau.** Il existe deux façons de détecter les noms de colonnes.
   * La première consiste à spécifier un ou plusieurs mots-clés dans la boîte de dialogue **Propriétés de la colonne** (la boîte de dialogue **Propriétés** de l’onglet **Élément de tableau →** Colonnes). Cette méthode est rapide, mais peu flexible.
   * La seconde consiste à utiliser un élément détecté précédemment comme élément de référence afin de trouver l’emplacement du nom de la colonne. Cette méthode permet de tirer pleinement parti des paramètres supplémentaires disponibles pour les éléments.

     L’analyse des résultats de pré-reconnaissance montre que la qualité de reconnaissance est suffisamment bonne pour utiliser la première méthode (la seule difficulté serait le nom très court de la colonne **quantité** — 20 % d’erreurs sur un mot-clé de trois lettres comme « Qty » signifie en pratique qu’aucune erreur n’est permise).

     Utilisez la première méthode pour détecter les deux premières colonnes, **Reference** et **Designation**, et utilisez les éléments déjà décrits pour détecter les noms des autres colonnes : **quantité**, **prix unitaire** et **Total** (puisque vous devez de toute façon créer ces éléments pour détecter les champs **TotalQuantity** et **TotalAmount**).
2. **Décrivez le pied du tableau.** Lui aussi peut être décrit soit à l’aide de mots-clés, soit à l’aide d’un élément auxiliaire.

   L’analyse des mots-clés dans le pied de tableau montre que, sur certaines images, ces mots-clés apparaissent également dans la première ligne du tableau. Vous devez donc utiliser un élément auxiliaire afin de pouvoir restreindre la zone de recherche.
3. **Décrivez la zone de recherche du tableau.** Après avoir décrit l’en-tête et le pied de tableau, décrivez la limite droite du tableau (il n’est pas nécessaire de décrire la limite gauche, puisqu’il n’y a pas d’autres données dans cette partie de l’image).

   Comme le contexte ne permet pas de distinguer les chiffres de la colonne Total de ceux de la colonne Sales, une autre approche est nécessaire. Vous pouvez utiliser le nom de la dernière colonne, Sales, pour restreindre la zone de recherche du tableau sur la droite.

<Note>
  Les éléments et l’ordre dans lequel ils doivent être détectés sont choisis par tâtonnements et peuvent être modifiés lors de l’ajustement du FlexiLayout.
</Note>

<div id="describe-the-auxiliary-elements">
  ## Décrire les éléments auxiliaires
</div>

Avant de décrire les champs restants, décrivez les éléments auxiliaires.

1. L’analyse des interdépendances entre les éléments montre que les noms des colonnes **Quantité**, **Prix unitaire**, **Total** et **Ventes** doivent être détectés en premier.
2. L’en-tête du tableau commence par un séparateur horizontal entre les noms des colonnes et les champs **Numéro de facture**, **Date de la facture** et **Adresse de livraison**. Ce séparateur aidera à restreindre les zones de recherche des noms de colonnes.
   * À cette fin, créez un élément de type [Separator](/fr/flexi-capture/fls/template/separator) et nommez-le **hsTableHeaderTop**. Pour des instructions détaillées, voir [Step 14](/fr/flexi-capture/fls/tutorial3/3step14).
     Recherchez les noms des colonnes dans leur ordre naturel.
   * Créez un élément de type [Group](/fr/flexi-capture/fls/template/elements-compound) et nommez-le **TableHeader**. Pour des instructions détaillées, voir [Step 15](/fr/flexi-capture/fls/tutorial3/3step15). Cet élément doit inclure :
     * L’élément **kwQuantity** de type [Static Text](/fr/flexi-capture/fls/template/static-text), qui correspondra au nom de la colonne **Quantité** du tableau **InvoiceTable**. Pour des instructions détaillées, voir [Step 16](/fr/flexi-capture/fls/tutorial3/3step16).
     * L’élément **kwUnitPrice** de type [Static Text](/fr/flexi-capture/fls/template/static-text), qui correspondra au nom de la colonne **Prix unitaire** du tableau **InvoiceTable**. Pour des instructions détaillées, voir [Step 17](/fr/flexi-capture/fls/tutorial3/3step17).
     * L’élément **kwTotal** de type [Static Text](/fr/flexi-capture/fls/template/static-text), qui correspondra au nom de la colonne **Total** du tableau **InvoiceTable**. Pour des instructions détaillées, voir [Step 18](/fr/flexi-capture/fls/tutorial3/3step18).
     * L’élément **kwSales** de type [Static Text](/fr/flexi-capture/fls/template/static-text), qui correspondra au nom de la colonne **Ventes** du tableau **InvoiceTable**. Pour des instructions détaillées, voir [Step 19](/fr/flexi-capture/fls/tutorial3/3step19).
3. Continuez en décrivant la partie inférieure du document. Les champs d’intérêt sont le nom des champs **Quantité totale** et **Montant total** (qui sert de limite inférieure du tableau), ainsi que toute autre légende pouvant aider à localiser la limite inférieure du tableau.

   Décrivez également l’élément de nom et l’élément source du champ **Pays** dans ce groupe logique.
4. Créez un élément [Group](/fr/flexi-capture/fls/template/elements-compound) et nommez-le **Footer**. Cet élément doit inclure :
   * L’élément **kwFooter** de type [Static Text](/fr/flexi-capture/fls/template/static-text), qui correspondra au pied du **tableau de facture**. Pour des instructions détaillées, voir [Step 21](/fr/flexi-capture/fls/tutorial3/3step21).
   * L’élément **kwTotal** de type [Static Text](/fr/flexi-capture/fls/template/static-text), qui correspondra au nom des champs **Quantité totale** et **Montant total**. Pour des instructions détaillées, voir [Step 22](/fr/flexi-capture/fls/tutorial3/3step22).
   * L’élément **kwOrigin** de type [Static Text](/fr/flexi-capture/fls/template/static-text), qui correspondra au nom du champ **Pays**. Pour des instructions détaillées, voir [Step 23](/fr/flexi-capture/fls/tutorial3/3step23).
   * L’élément **Country** de type [Character String](/fr/flexi-capture/fls/template/character-chain), qui correspondra au champ **Pays**. Pour des instructions détaillées, voir [Step 24](/fr/flexi-capture/fls/tutorial3/3step24).

<div id="describe-the-remaining-fields">
  ## Décrire les champs restants
</div>

Maintenant que tous les préparatifs ont été effectués et que l’ordre de création des éléments supplémentaires a été décrit, vous pouvez commencer à rechercher les champs restants. En vous appuyant sur les noms de colonnes et le Footer détectés précédemment, décrivez les champs restants Quantité totale, Montant total et tableau de facture.

1. À cet effet, créez deux éléments de type [Character String](/fr/flexi-capture/fls/template/character-chain) et nommez-les **TotalQuantity** et **TotalAmount**. Ces éléments correspondront respectivement aux champs **Quantité totale** et **Montant total**. Pour des instructions détaillées, voir [Étape 25](/fr/flexi-capture/fls/tutorial3/3step25).
2. Créez un élément de type [Tableau](/fr/flexi-capture/fls/tables/general-tables) et nommez-le **InvoiceTable**. Cet élément décrit le champ **tableau de facture**. Pour des instructions détaillées, voir [Étape 26](/fr/flexi-capture/fls/tutorial3/3step26).
