Qu’est-ce qu’un tableau multipage ?
ABBYY FlexiLayout Studio peut détecter des tableaux multipages, c’est-à-dire des tableaux qui s’étendent sur plusieurs pages d’un document et dont l’ordre et le nombre de colonnes sont identiques sur toutes les pages. La largeur et l’emplacement exact des colonnes peuvent varier légèrement d’une page à l’autre (la variation maximale autorisée par le programme est de 1 pouce).
Par souci de concision, nous utilisons le terme sous-tableau monopage pour désigner chaque partie d’un tableau multipage située sur une seule page.
L’en-tête et le pied de tableau d’un tableau multipage
Les tableaux sur plusieurs pages peuvent avoir un en-tête qui se répète sur chaque page ou qui n’apparaît qu’une seule fois sur la première page. L’option Header is on each page indique au programme si l’en-tête doit être détecté sur chaque page. Si l’option est désactivée, ABBYY FlexiLayout Studio recherchera l’en-tête uniquement dans le premier sous-tableau monopage.
Il en va de même pour le pied de tableau d’un tableau, qui peut n’apparaître qu’une seule fois sur la dernière page ou en bas de chaque page. L’option Footer is on each page indique au programme si le pied de tableau doit être détecté sur chaque page. Si l’option est désactivée, ABBYY FlexiLayout Studio recherchera le pied de tableau uniquement dans le dernier sous-tableau monopage.
Recherche d’un tableau multipage
Le programme commence la recherche d’un tableau multipage à partir de la première page de la zone de recherche spécifiée par l’utilisateur, puis la poursuit sur les pages suivantes. La recherche s’arrête lorsque l’une des conditions suivantes est satisfaite :
- Si le pied de tableau ne doit apparaître que sur la dernière page et qu’il a été détecté.
- Si le programme a atteint la fin de la zone de recherche spécifiée pour le tableau.
- Si le programme n’a détecté aucun sous-tableau monopage sur une page, c’est-à-dire s’il n’a trouvé ni l’en-tête, ni le pied de tableau, ni le corps de tableau.
Utilisation de la région d’un autre élément pour détecter le nom d’une colonne dans un tableau multipage
Dans le cas des tableaux multipages, vous pouvez toujours utiliser deux méthodes pour rechercher l’en-tête et le pied de tableau d’un tableau ou de ses sous-tableaux : soit en spécifiant des mots-clés (option Détecter par mot-clé), soit en utilisant un élément déjà détecté comme en-tête ou pied de tableau (option Utiliser l’élément trouvé comme…). Si vous utilisez la première méthode, le programme recherchera les mots-clés spécifiés sur les pages où l’en-tête ou le pied de tableau peut apparaître (comme défini par l’option L’en-tête/le pied de page apparaît sur chaque page). Si les mots-clés ne permettent pas de détecter de manière fiable les noms de colonnes sur les images en cours de traitement, utilisez l’option Utiliser l’élément trouvé comme….
Si l’en-tête et le pied de tableau d’un tableau multipage n’apparaissent que sur la première et la dernière page, respectivement, vous pouvez utiliser des éléments simples déjà détectés, comme pour les tableaux d’une seule page. Cette méthode est utilisée dans Exemple 3 (voir le projet dans %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\English\Invoice). En revanche, si l’en-tête ou le pied de tableau doit être détecté sur chaque page, la meilleure stratégie consiste à utiliser les sous-éléments d’un groupe répétitif déjà détecté. Avec un groupe répétitif, vous pouvez trouver l’en-tête sur chaque page en ne le décrivant qu’une seule fois dans le groupe répétitif et en spécifiant le nombre possible d’instances pour ce groupe. Si l’élément Table est décrit sous le groupe répétitif dans l’arborescence des éléments, utilisez toutes les instances (AllInstances) des sous-éléments souhaités pour faire correspondre les noms de colonnes au groupe répétitif. Pour une illustration de cette approche, consultez l’exemple de projet dans %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\English\Invoice with Repeatable Groups).
S’il existe plusieurs instances du groupe répétitif sélectionné sur une page, les premières instances seront utilisées comme nom de la colonne.
Recherche de tableaux répétitifs
Dans certains documents, il peut y avoir plusieurs tableaux identiques sur une même page (la disposition des tableaux et l’ordre des colonnes peuvent être les mêmes). Il arrive que le dernier tableau de la série soit interrompu et se poursuive sur la page suivante. Entre les tableaux, on peut trouver du texte ou des éléments de mise en forme visuelle, par ex. des légendes de tableau ou des notes explicatives.
Vous pouvez détecter ce type de tableaux en plaçant l’élément Table, qui décrit une instance du tableau, à l’intérieur d’un groupe répétitif. Cela vous permet de décrire l’ensemble des tableaux dans un seul élément Table et de définir les répétitions des instances dans les propriétés du groupe répétitif qui englobe l’élément Table.
Si vous utilisez l’option Utiliser l’élément trouvé comme… pour détecter les noms de colonnes à partir d’un élément déjà détecté, il est plus pratique de placer cet élément dans le même groupe répétitif, au-dessus de l’élément Table. Dans ce cas, lorsque vous sélectionnez un élément auxiliaire qui servira à détecter le nom de la colonne, faites référence à l’instance actuelle (CurrentInstance) de cet élément auxiliaire dans le groupe répétitif. Ainsi, lorsque le programme recherchera chaque instance du nom de colonne, il utilisera l’instance correspondante de l’élément auxiliaire. Pour une illustration de cette approche, consultez le projet exemple dans %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\English\Prices).