- Y a-t-il une logique ou une méthode dans la disposition des champs sur les images ?
- Sur quels éléments peut-on s’appuyer pour rechercher les champs de données ?
- Dans quel ordre faut-il rechercher les éléments ? (C’est important, car à chaque étape suivante, nous ne pouvons nous appuyer que sur les éléments de l’étape précédente.)
- L’élément Header doit correspondre uniquement à la première page du document.
- L’élément Footer doit correspondre uniquement à la dernière page du document. Nous recommandons de créer des sous-éléments obligatoires dans ce groupe afin d’éviter que l’élément Footer ne soit associé à une autre page du document.
- Sur la première page, il y a un groupe de champs composé de InvoiceNumber, InvoiceDate, DeliveryAddress. Le nom du champ InvoiceNumber se trouve toujours au début de chaque document, tandis que InvoiceDate et DeliveryAddress ne sont pas toujours présents.
- Les champs InvoiceNumber et InvoiceDate peuvent se trouver soit à droite de leurs noms correspondants, soit en dessous.
- Pour DeliveryAddress, nous devons également chercher soit à droite, soit en dessous du nom correspondant, après avoir limité la zone de recherche. De plus, nous aurons besoin d’un élément pour limiter la zone de recherche par le bas.
- Comme, sur certaines images, ces champs n’ont pas de valeur, vous pouvez accélérer le processus de mise en correspondance en spécifiant la condition suivante : ne recherchez pas la valeur d’un champ si le nom du champ n’a pas été détecté.
- Nous pouvons utiliser ce groupe de champs comme identifiant de notre document. Nous décrirons ces champs comme faisant partie d’un élément Header composé nommé InvoiceHeader.
- La dernière page du document comporte les mots TOTAL AMOUNT MUST, Carried over, Total CHF, TOTAL sous le tableau. Cependant, ces mots peuvent aussi apparaître ailleurs dans le document (par ex. dans le nom ou dans le corps du tableau). Pour trouver ces mots, nous devrons utiliser des éléments de référence supplémentaires (par ex. les noms des colonnes du tableau). Ces éléments de référence nous aideront à limiter la zone de recherche.
- Les éléments décrivant la dernière page du document feront partie d’un élément Footer composé nommé InvoiceFooter.
- Pour que l’élément Footer ne corresponde qu’à la dernière page du document, il doit contenir un élément obligatoire. Comme les mots qui identifient la dernière page (voir le point 3 ci-dessus) apparaissent sur chaque dernière page de chaque document, nous ferons de l’élément qui les décrit un élément obligatoire.
- Le tableau (nommez-le InvoiceTable) commence sur la première page et se termine sur la dernière. De plus, le tableau est toujours précédé des noms de colonnes sur la première page. Pour identifier la fin du tableau (sur la dernière page), nous utiliserons un élément auxiliaire (par ex. l’élément obligatoire du groupe InvoiceFooter). Remarque. L’ensemble des pages d’un document est appelé canevas multipage. Un canevas multipage est formé en joignant toutes les pages d’un document de haut en bas, sans aucun espace, la limite gauche de toutes les pages se trouvant sur le même axe, qui passe par le point (0, 0). L’ordre dans lequel les pages sont jointes est déterminé par l’ordre des pages dans le lot ; par conséquent, nous ne pouvons spécifier que le début du tableau (son en-tête sur la première page) et la fin du tableau (son pied de tableau sur la dernière page). Le programme recherchera le tableau dans l’ensemble du document, c’est-à-dire sur tout le canevas multipage.
- Nous rechercherons le nom de l’entreprise dans le champ Company, toujours sur la première page et toujours dans le tiers supérieur de la page.
- Le nom du champ Total Amount se trouve toujours sur la dernière page, sous le tableau. La valeur du champ se trouve soit à droite du nom, soit en dessous.
