Définir la Structure et Extraire les données
Dans ce chapitre, les procédures suivantes seront décrites :
•Utiliser des suggestions pour extraire des structure et données automatiquement
•Définir d’autres règles d’extraction manuellement
•Enregistrer le modèle
L’ordre dans lequel vous concevez votre modèle peut varier et ne doit pas être le même que celui décrit ci-dessus.
Extraire la structure de table et les données automatiquement
Dans la première étape, nous allons extraire des données de la table. La manière la plus simple est d’utiliser la suggestion de l’Extracteur PDF pour la table (marqué en vert dans la capture d’écran ci-dessous). Pour utiliser la suggestion, double-cliquez sur le bouton Table? au niveau supérieur gauche du cadre vert. Les cellules contenant l’information sur le prix et les taxes seront traitées séparément.
![PDFEX_TableSuggestion](./images/pdfex_tablesuggestion.png)
Dès que vous double-cliquez sur le bouton Table?, la structure d’arborescence apparaît dans le volet de schéma :
![PDFEX_InvoiceTree](./images/pdfex_invoicetree.png)
Le volet de schéma est une boîte à outils qui détermine comment les données seront extraites. À cette étape, le modèle a la structure suivante :
•Le nœud supérieur qui représente la racine (Invoice)
•L’objet de Groupe/Filtre qui groupe et filtre des pages d’un document PDF
•Deux affectations verticales (Haut et Bas) qui identifient l’emplacement où la table commence et se termine
•L’objet Fractionner qui fractionne la table en lignes
•L’objet Groupe/Filtre qui regroupe les lignes de la table
•cinq affectations horizontales qui marquent les positions des l’ancre séparées colonnes
•Quatre captures de texte qui font référence aux noms des colonnes de table
Pour plus d’information sur la génération de code, voir Objets modèle.
Note relative aux documents multi-pages
Quand votre document PDF contient de multiples pages, et que vous acceptez une suggestion de table automatique sur une page particulière, vous obtiendrez un objet Groupe/Filtre pour cette page uniquement. Si vous voulez également inclure d’autres pages du document, vous pouvez configurer l’objet Groupe/Filrer selon le cas.
La structure d’arborescence et les données dans le volet Sortie
Simultanément, la structure d’arborescence des règles d’extraction dans le volet de schéma, l’arborescence avec les données extraites depuis la table apparaissent dans le volet Sortie (voir l’extrait de la liste de code ci-dessous).
<Invoice>
<Row>
<Col1>Description</Col1>
<Col2>Hours</Col2>
<Col3>Rate ($/hr)</Col3>
<Col4> Amount ($)</Col4>
</ Row>
<Row>
<Col1>Garden design</Col1>
< Col2> 6</ Col2>
< Col3> 50</ Col3>
< Col4> 300</ Col4>
</ Row>
<...>
</ Invoice>
Pour vérifier la correspondance entre la structure dans le volet Sortie et les objets, cliquez sur un élément ou sa valeur dans le volet Sortie. Ceci met en lumière l’instance correspondante de l’objet en jaune et les bords de chaque instance de l’objet en rose dans le volet de l’Aperçu PDF et et marque l’objet correspondant dans le modèle de l’arborescence du volet de schéma (capture d’écran ci-dessous).
![PDFEX_HighlightedCell](./images/pdfex_highlightedcell.png)
Cellule mise en surbrillance dans le volet de l’Aperçu PDF
![PDFEX_HighlightedObjectSchemaPane](./images/pdfex_highlightedobjectschemapane.png)
Objet mis en surbrillance dans le volet de schéma
Ajuster les données de table
La table dans ce tutoriel a des en-tête de colonne que nous ne voulons pas inclure dans notre modèle. Pour exclure la ligne d’en-tête, suivez les étapes suivantes :
1.Cliquez sur l’affectation verticale TableTop dans le volet de schéma.
2.Cliquez sur le libellé TableTop dans la table dans le volet de l’Affichage PDF. Dès que vous avez cliqué, une double flèche apparaît (capture d’écran ci-dessous), qui vous permet d’ajuster la position de la ligne TableTop. Dans notre exemple, la ligne TableTop a été glissée vers le bas pour exclure la ligne de l’en-tête de la table, qui exclut également les noms des en-tête de colonne depuis la sortie.
![PDFEX_AdjustTableTop](./images/pdfex_adjusttabletop.png)
Attribuer des noms descriptifs aux lignes et colonnes de la table
L’objet Fractionner dans le volet de schéma contient un objet Groupe/Filtre avec un nom par défaut Row. Pour modifier le nom de la ligne, cliquez sur le nœud Groupe/Filtre dans l’arborescence, saisissez Service dans le champ Sortie nom XML dans le volet de propriétés, puis appuyez sur Enter. Le nœud Groupe/Filtre a désormais l’aspect suivant :
![PDFEX_Service](./images/pdfex_service.png)
Les noms par défaut des colonnes de table sont Col1, Col2, etc. Pour modifier les noms par défaut des colonnes, cliquez sur la capture d’écran dans le volet de schéma et saisissez un nouveau nom dans le champ Sortie nom XML dans le volet de propriétés. Dans ce tutoriel, le nom de la première colonne est Description (capture d’écran ci-dessous). Outre le nouveau nom de la colonne, vous pouvez également voir la position de la région dans le document PDF.
![PDFEX_DescriptionColumn](./images/pdfex_descriptioncolumn.png)
Modifier un nom d’objet dans le volet de propriétés change également le libellé de texte dans le volet de l’Affichage PDF (capture d’écran ci-dessous). Cliquer sur un objet dans le volet de schéma met en surbrillance son emplacement dans le volet de l’Affichage PDF. Par exemple, dans la capture d’écran ci-dessous, les cellules avec les libellés Description sont mis en surbrillance rose.
![PDFEX_DescriptionLabelPDFView](./images/pdfex_descriptionlabelpdfview.png)
La prochaine étape sera de changer les captures de texte Col2, Col3, et Col4 en Hours, Rate et Amount, respectivement.
Définir d’autres règles d’extraction manuellement
Outre l’extraction de données de la table, nous voulons aussi inclure l’information sur le nom de la facture, le client, le numéro et la date, le prix et les taxes, ainsi que les termes et conditions. À cette étape, l’objectif est d’extraire ces morceaux d’information manuellement. Il est supposé que cette information sur l’entrepreneur est la même dans toutes les factures publiées par cette entreprise et n’est pas pertinente pour le modèle et le mappage futur. Pour cette raison, l’information sur l’entrepreneur ne sera pas incluse dans le modèle.
Pour extraire le des données PDF manuellement, suivez les instructions ci-dessous :
1.Cliquez sur la racine ou l’objet Groupe/Filtre sous le nœud racine pour pouvoir voir le document PDF entier.
2.Le premier morceau d’information à extraire est l’en-tête. Sélectionnez un rectangle qui contient l’en-tête entier (capture d’écran ci-dessous).
![PDFEX_HeaderSelected](./images/pdfex_headerselected.png)
3.Cliquez avec la touche de droite dans le rectangle et sélectionnez Créer Capture de texte depuis le menu contextuel (capture d’écran ci-dessous).
![PDFEX_HeaderTextCapture](./images/pdfex_headertextcapture.png)
4.Une nouvelle capture de texte avec un nom par défaut Capture apparaîtra dans l’arborescence du volet de schéma. Par défaut, une nouvelle capture est placée au niveau inférieur de l’arborescence dans le volet de schéma. Puisque cette capture correspond à l’en-tête de la facture, la position logique de la capture se trouve dans la partie supérieure de l’arborescence. Pour cette raison, appuyez sur la nouvelle capture, glissez-la au niveau supérieur de l’arborescence et déposez la capture avant l’objet Fractionner, tel qu’affiché dans la capture d’écran ci-dessous.
![PDFEX_DragDropCapture](./images/pdfex_dragdropcapture.png)
5.Changer le nom de la capture : Cliquez sur la capture dans le volet de schéma, saisissez Header dans le champ Sortie nom XML dans le volet de propriétés et cliquez sur Enter.
6.La prochaine étape est d’extraire les détails client : Sélectionnez un rectangle qui inclut tous les détails client (capture d’écran ci-dessous), cliquez avec la touche de droite sur le rectangle et sélectionnez Créer Capture de texte depuis le menu contextuel. Une solution alternative est de créer des captures de texte séparées pour chaque morceau d’information (par ex., ClientName, Address, etc.). À des fins de simplicité, nous avons décidé de traiter tous les détails client comme une unité d’information.
![PDFEX_BillToRectangle](./images/pdfex_billtorectangle.png)
7.Attribuez un nom à la nouvelle capture (dans notre cas, FacturerÀ), glissez et déposez-la sous la capture En-tête.
8.Répétez les étapes ci-dessus pour créer de nouvelles captures de texte pour le numéro et la date de la facture, appelez-les NoFacture et Date, respectivement, et placez-les sous la capture FacturerÀ.
9.Puis créez des captures de texte pour les valeurs des cellules Sous-total, Taxes vente, et Total, et le texte sous Termes et Conditions, donnez de noms à ces captures (Sous-total, Taxes, Total, et Termes dans notre exemple), et laissez-les au niveau inférieur de l’arborescence.
10.Vérifiez si la structure dans le volet Sortie correspond au résultat désiré.
Enregistrez le modèle
L’étape finale dans le design du modèle est de l’enregistrer. Pour ce faire, suivez les étapes suivantes :
1.Cliquez sur Enregistrer ou Enregistrer sous dans le menu Fichier. En alternative, cliquez sur le bouton de la barre d’outils .
2.Dans le dialogue Enregistrer sous qui s’ouvre, donnez un nom à votre nouveau modèle et sélectionnez l’emplacement où le modèle doit être enregistré. Dans notre exemple, le modèle est appelé GardenInvoice.pxt.
3.Cliquez sur Enregistrer pour confirmer.
Le modèle est prêt à être importé dans MapForce. Pour les détails, voir Importer modèle dans MapForce.