> ## 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 4. Étape 4 : Analyse des images pour déterminer l’ordre de détection des éléments

> Analysez des images de factures pour définir l’ordre de détection des éléments, y compris les éléments Header et Footer qui identifient la première et la dernière page des documents multipages.

À ce stade, déterminez les points suivants :

* Existe-t-il un motif dans la disposition des champs sur les images ?
* Sur quels éléments pouvez-vous vous appuyer pour rechercher les champs de données ?
* Dans quel ordre faut-il rechercher les éléments ? (Ceci est important, car à chaque étape suivante, vous ne pouvez vous appuyer que sur les éléments de l’étape précédente.)

Comme il s’agit d’un document multipage, commencez par déterminer quels objets identifient la première et la dernière page. Décrivez ces objets à l’aide d’éléments composés spéciaux **Header** et **Footer** :

* L’élément **Header** doit correspondre uniquement à la première page du document. Si le projet contient également des documents d’autres types, cet élément sert aussi d’identifiant, une caractéristique unique qui identifie ce type de document.
* L’élément **Footer** doit correspondre uniquement à la dernière page du document. Créez les sous-éléments obligatoires dans ce groupe afin d’empêcher que l’élément **Footer** ne corresponde à une autre page.

<div id="identify-the-first-page-with-a-header-element">
  ## Identifiez la première page à l’aide d’un élément Header
</div>

Sur la première page, un groupe de champs comprend **InvoiceNumber**, **InvoiceDate** et **DeliveryAddress**. Le libellé du champ **InvoiceNumber** apparaît toujours au début de chaque document, mais les champs **InvoiceDate** et **DeliveryAddress** ne sont pas toujours présents.

* Les champs **InvoiceNumber** et **InvoiceDate** apparaissent soit à droite de leur libellé, soit en dessous.
* **DeliveryAddress** apparaît également à droite de son libellé ou en dessous, dans une zone de recherche limitée, et nécessite un élément délimitant la zone de recherche par le bas.
* Comme certaines images ne contiennent aucune valeur pour ces champs, vous pouvez accélérer la mise en correspondance en ne recherchant pas la valeur d’un champ lorsque son libellé n’est pas détecté.

Utilisez ce groupe de champs comme identifiant du document, dans le cadre d’un élément **Header** composé nommé **InvoiceHeader**.

<div id="identify-the-last-page-with-a-footer-element">
  ## Identifier la dernière page à l’aide d’un élément Footer
</div>

La dernière page contient les mots **TOTAL AMOUNT MUST**, **Carried over**, **Total CHF** et **TOTAL** sous le tableau. Ces mots peuvent également apparaître ailleurs dans le document (par exemple, dans le nom ou le corps du tableau). Utilisez donc des éléments de référence supplémentaires, tels que les noms de colonnes du tableau, afin de limiter la zone de recherche.

Décrivez les éléments de la dernière page dans un élément **Footer** composé nommé **InvoiceFooter**. Pour que l’élément **Footer** corresponde uniquement à la dernière page, il doit contenir un élément obligatoire. Comme les mots qui identifient la dernière page apparaissent sur chaque dernière page, définissez l’élément qui les décrit comme obligatoire.

<div id="detect-the-multi-page-table">
  ## Détecter le tableau multipage
</div>

Le tableau (nommez-le **InvoiceTable**) commence sur la première page et se termine sur la dernière. Il est toujours précédé des noms des colonnes sur la première page. Pour identifier la fin du tableau sur la dernière page, utilisez un élément auxiliaire, tel que l’élément obligatoire du groupe **InvoiceFooter**.

L’ensemble des pages d’un document est appelé canevas multipage. Il est obtenu en assemblant toutes les pages d’un document de haut en bas, sans espace, en alignant la limite gauche de chaque page sur le même axe, qui passe par le point (0, 0). L’ordre d’assemblage des pages correspond à leur ordre dans le batch.

Vous pouvez donc spécifier uniquement le début du tableau (son en-tête sur la première page) et sa fin (son pied de page sur la dernière page). FlexiLayout Studio recherche alors le tableau dans l’ensemble du document, c’est-à-dire dans tout le canevas multipage.

<div id="detect-the-company-and-total-amount-fields">
  ## Détecter les champs Company et Total Amount
</div>

Le libellé du champ **Company** apparaît toujours sur la première page, dans son tiers supérieur.

Le libellé du champ **Total Amount** apparaît toujours sur la dernière page, sous le tableau. Sa valeur apparaît soit à droite du libellé, soit en dessous.
