Passer au contenu principal
Maintenant que tous les préparatifs sont terminés, vous pouvez rechercher le champ tableau de facture en créant un élément Table :
  1. En-tête du tableau. Comme décidé précédemment, indiquez les noms des colonnes à l’aide d’éléments auxiliaires déjà détectés.
  2. Pied du tableau. Comme décidé précédemment, le pied est défini à l’aide de l’élément Paragraph obligatoire déjà détecté du groupe InvoiceFooter, qui identifie le début de la partie finale. Cet élément a été décrit comme étant le plus proche du bas du tableau.
  3. Zone de recherche du tableau. Vous pouvez limiter la zone de recherche à droite à l’aide du nom de la dernière colonne Sales, qui n’est nécessaire à aucune autre fin.

Créer l’élément InvoiceTable

Pour créer un élément InvoiceTable :
  1. Dans l’arborescence SearchElements, créez un élément de type Table et nommez-le InvoiceTable.
  2. Cliquez sur l’onglet Columns.
  3. Cliquez sur Select pour sélectionner le bloc InvoiceTable créé précédemment à l’étape 3 comme bloc à rechercher.
  4. Spécifiez les paramètres de recherche des colonnes du tableau :
    • Dans la liste des colonnes, sélectionnez Reference et cliquez sur le bouton Propriétés. Pour le nom de cette colonne, utilisez l’élément TableHeader.kwReference détecté précédemment. Pour cela, sélectionnez Use found element as column name, puis cliquez sur Bouton Parcourir et sélectionnez TableHeader.kwReference.
    • Dans la liste des colonnes, sélectionnez Désignation et cliquez sur le bouton Propriétés. Pour le nom de cette colonne, utilisez l’élément TableHeader.kwDesignation détecté précédemment.
    • Dans la liste des colonnes, sélectionnez Unit et cliquez sur le bouton Propriétés. Pour le nom de cette colonne, utilisez l’élément TableHeader.kwUnit détecté précédemment.
    • Dans la liste des colonnes, sélectionnez Quantity et cliquez sur le bouton Propriétés. Pour le nom de cette colonne, utilisez l’élément TableHeader.kwQuantity détecté précédemment.
    • Dans la liste des colonnes, sélectionnez Prix unitaire et cliquez sur le bouton Propriétés. Pour le nom de cette colonne, utilisez l’élément TableHeader.kwUnitPrice détecté précédemment.
    • Dans la liste des colonnes, sélectionnez Total et cliquez sur le bouton Propriétés. Pour le nom de cette colonne, utilisez l’élément TableHeader.kwTotal détecté précédemment.
  5. Cliquez sur l’onglet Order.
  6. Comme les colonnes recherchées peuvent être séparées les unes des autres par d’autres colonnes (par exemple, ExtraQtyTag), mais que leur ordre est toujours fixe (Désignation d’abord, puis Prix unitaire, puis Total), sélectionnez la règle d’ordre des colonnes, cliquez sur Add…, puis ajoutez les colonnes dans l’ordre suivant : Désignation << Prix unitaire << Total.
Capture d’écran de l’onglet Order des propriétés de l’élément Table InvoiceTable dans ABBYY FlexiLayout Studio, montrant la règle d’ordre des colonnes sélectionnée avec les colonnes Designation, Unit Price et Total ajoutées dans l’ordre requis.
  1. Cliquez sur l’onglet en-tête. L’en-tête du tableau est nécessaire, mais aucune contrainte supplémentaire n’est imposée ; conservez donc les valeurs par défaut.
  2. Cliquez sur l’onglet pied. Utilisez l’élément InvoiceFooter.Paragraph détecté précédemment pour la partie finale du tableau. Sélectionnez l’option Use found element as pied, cliquez sur Bouton Parcourir puis sélectionnez l’élément InvoiceFooter.Paragraph.
Capture d’écran de l’onglet pied des propriétés de l’élément Table InvoiceTable dans ABBYY FlexiLayout Studio, montrant l’option Use found element as pied sélectionnée avec l’élément InvoiceFooter.Paragraph choisi comme pied de tableau.
  1. Cliquez sur l’onglet Rows.
  2. Comme les cellules de certaines colonnes peuvent contenir plusieurs lignes, vous devez spécifier des colonnes principales pour séparer les lignes. Sélectionnez Use master columns to detect rows. Spécifiez d’abord la colonne Total, car cette colonne contient toujours des données et, pour chaque enregistrement du tableau, elle comporte une ligne de données. Si cette colonne n’est pas détectée sur l’image, spécifiez les colonnes Prix unitaire et Quantity comme option suivante pour la séparation des lignes. Utilisez le bouton Bouton Parcourir pour sélectionner ces colonnes.
Capture d’écran de l’onglet Rows des propriétés de l’élément Table InvoiceTable dans ABBYY FlexiLayout Studio, montrant Use master columns to detect rows sélectionné avec les colonnes Total, Unit Price et Quantity spécifiées comme colonnes principales pour la séparation des lignes.
  1. Sélectionnez l’onglet Relations. Comme les colonnes du tableau qui nous intéressent se trouvent à gauche du nom de la colonne Sales, ajoutez les contraintes de recherche suivantes :
    • Left of l’élément TableHeader.kwSales, Offset = 0
    Pour les images de mauvaise qualité (par exemple, s’il y a du bruit entre le corps et le pied de tableau du tableau, ou s’il n’y a ni en-tête ni pied de tableau), vous pouvez spécifier les limites supérieure et inférieure du tableau. Dans ce cas, vous pouvez utiliser l’élément kwDesignation comme limite supérieure et l’élément Paragraph comme limite inférieure. Dans l’onglet Relations, ajoutez les contraintes de recherche suivantes :
    • En dessous de la limite supérieure de l’élément kwDesignation, Offset = -50, Reference boundary = Top
    • Au-dessus de l’élément Paragraph, Offset = -50, Reference boundary = Bottom
  2. Associez le FlexiLayout aux images de test. Vous remarquerez que le programme détecte correctement l’élément Table sur toutes les images, mais que, sur certaines d’entre elles, la colonne Quantity inclut du texte superflu provenant de la colonne précédente. Pour distinguer les données correctes de la colonne Quantity des données non pertinentes, spécifiez le type de contenu de cette colonne.
  3. Ouvrez la boîte de dialogue Properties de l’élément Table InvoiceTable. Cliquez sur l’onglet Columns, ouvrez la boîte de dialogue Propriétés de la colonne Quantity, puis sélectionnez l’option Check content type. Dans Type of column content, sélectionnez Number.
Capture d’écran des propriétés de la colonne Quantity dans ABBYY FlexiLayout Studio, montrant l’option Check content type sélectionnée avec Number choisi comme type de contenu de colonne.
  1. Maintenant, si vous associez le FlexiLayout aux images, vous verrez que la colonne Quantity ne contient que des chiffres, comme requis.
  2. De même, spécifiez un contenu de type Devise pour les colonnes prix unitaire et Total.
  3. Pour spécifier l’emplacement du bloc InvoiceTable, sélectionnez l’option élément source. Cliquez sur Bouton Parcourir et spécifiez InvoiceTable comme élément source.