- Vue d'ensemble (Overview)
- Document Processing Contracts
- À propos des contrats de traitement de documents
- Classe Zone
- Interface ActivitéIPersisted
- Classe PrettyBoxConverter
- Interface ActivitéIClassifier
- Interface FournisseurIClassifieurCapacités
- Classe TypeDocumentClassifieur
- Classe RésultatClassifieur
- Classe ActivitéCodeClassifieur
- Classe ActivitéClassifieurNatif
- Classe ActivitéClassifieurCodeAsync
- Classe CapacitéClassifieurTypeDocument
- Classe ActivitéExtracteurCodeAsync
- Classe ActivitéExtracteurCode
- Classe ExtracteurTypeDocument
- Classe ExtracteurDocumentTypeCapacités
- Classe ExtracteurChampCapacités
- Classe ActivitéExtracteurNatif
- Classe ExtracteurRésultat
- Interface FournisseurICapabilities
- Interface ActivitéIExtractor
- Classe ChargeUtileExtracteur
- Énumération PrioritéActionDocument
- Classe DocumentActionData
- Énumération StatutActionDocument
- Énumération TypeActionDocument
- Classe DocumentClassificationActionData
- Classe DocumentValidationActionData
- Classe DonnéesUtilisateur
- Classe Documents
- Classe RésultatDivisionDocument
- Classe ExtensionDom
- Classe Page
- Classe SectionPage
- Classe Polygone
- Classe ConvertisseurPolygones
- Classe de métadonnées
- Classe GroupeMot
- Classe Mot
- Énumération SourceTraitement
- Classe CelluleRésultatsTable
- Classe ValeurTableRésultats
- Classe InformationsColonnesTableRésultats
- Classe TableRésultats
- Énumération Rotation
- Énumération TypeSection
- Énumération TypeGroupeMot
- ProjectionTexteIDocument Interface
- Classe RésultatClassification
- Classe RésultatExtraction
- Classe ResultatsDocument
- Classe ResultatsLimitesDocument
- Classe ResultatsDonnéesPoint
- Classe RésultatsValeur
- Classe ResultatsContenuRéference
- Classe ResultatsValeurJetons
- Classe ResultatsChampDérivé
- Énumération ResultatsSourceDonnées
- Classe ResultatsConstantes
- Classe ChampValeurSimple
- Classe ValeurChampTable
- Classe GroupeDocument
- Classe DocumentTaxonomie
- Classe TypeDocument
- Classe Champ
- Énumération TypeChamp
- Classe InfoLangage
- Classe SaisieMétadonnées
- Énumération TypeTexte
- Classe TypeFieldTypeField Class
- Interface ActivitéISuivi
- ITrainableActivity Interface
- Interface ActivitéClassifieurITrainable
- Interface ActivitéExtracteurITrainable
- Classe ActivitéFormationClassifieurCodeAsync
- Classe ActivitéFormationClassifieurCode
- Classe ActivitéFormationClassifieurNatif
- Classe ActivitéFormationExtracteurCodeAsync
- Classe ActivitéFormationExtracteurCode
- Classe ActivitéFormationExtracteurNative
- Numériseur de Document Understanding
- Document Understanding ML
- Serveur local OCR Document Understanding
- Processus Document Understanding : modèle Studio
- Activités Document Understanding
- À propos du package Document Understanding Digitizer
- Compatibilité du Projet
- Définir le mot de passe du PDF
- Merge PDFs
- Get PDF Page Count
- Extraire le texte PDF (Extract PDF Text)
- Extract PDF Images
- Extract PDF Page Range
- Extraire les données du document
- Create Validation Task and Wait
- Attendre la tâche de validation et reprendre
- Create Validation Task
- Classer un document (Classify Document)
- Créer une tâche de validation de classification (Create Classification Validation Task)
- Créer une tâche de validation de classification et attendre (Create Classification Validation Task and Wait)
- Attendre la tâche de validation de la classification et reprendre
- IntelligentOCR
- À propos du package d'activités IntelligentOCR
- Compatibilité du Projet
- Load Taxonomy
- Digitize Document
- Classify Document Scope
- Keyword Based Classifier
- Intelligent Keyword Classifier
- Present Classification Station
- Create Document Classification Action
- Wait For Document Classification Action And Resume
- Tester l'étendue des classifieurs
- Outil d'entraînement de classifieur basé sur des mots-clés
- Intelligent Keyword Classifier Trainer
- Data Extraction Scope
- Regex Based Extractor
- Form Extractor
- Extracteur de formulaires intelligents
- Present Validation Station
- Create Document Validation Action
- Wait For Document Validation Action And Resume
- Tester l'étendue des extracteurs
- Export Extraction Results
- Services ML
- OCR
- Contrats OCR
- Notes de publication
- À propos des contrats OCR
- Compatibilité du Projet
- Interface ActivitéIOCR
- Classe OCRCodeAsync
- Classe ActivitéCodeOCR
- Classe ActivitéOCRNatif
- Classe Caractère
- Classe RésultatOCR
- Classe Mot
- Énumération StylesPolice
- Énumération RotationOCR
- Classe OCRCapabilities
- Classe BaseCaptureOCR
- Classe UsineCaptureOCR
- Classe BaseContrôleCapture
- Énumération UtilisationCaptureMoteur
- ScrapeEngineBase
- Classe ScrapeEngineFactory
- Classe ScrapeEngineProvider
- OmniPage
- PDF
- [Non listé] Abbyy
- Notes de publication
- À propos du package d'activités Abbyy
- Compatibilité du Projet
- Reconnaissance optique des caractères ABBYY (ABBYY OCR)
- Reconnaissance optique des caractères ABBYY Cloud (ABBYY Cloud OCR)
- FlexiCapture Classifier
- FlexiCapture Extractor
- FlexiCapture Scope
- Classer un document (Classify Document)
- Traiter le document (Process Document)
- Valider le document (Validate Document)
- Exporter le document (Export Document)
- Obtenir le champ (Get Field)
- Obtenir la table (Get Table)
- Prepare Validation Station Data
- [Non listé] Abbyy intégré
Lire des fichiers PDF
.pdf
à l'aide d'activités capables de lire tous les caractères inclus dans le document.
Selon vos besoins, vous pouvez utiliser une activité simple capable de reconnaître les caractères ou en utiliser une avec un moteur OCR. Les avantages de l'utilisation d'un moteur OCR sont que la lecture du document peut être appliquée même sur des documents numérisés, signés ou manuscrits.
.pdf
:
- La première explique comment lire le fichier
.pdf
tout en utilisant l'activité Lire le texte PDF (Read PDF Text). -
La seconde explique comment lire le fichier
.pdf
tout en utilisant l'activité Lire le PDF avec OCR (Read PDF With OCR).La principale différence entre les deux scénarios est que le second utilise également des moteurs OCR, ce qui signifie que les détails des informations extraites sont plus précis que dans le premier cas si le fichier analysé est une image, numérisée, ou comprend des champs signés ou manuscrits. Vous pouvez trouver les deux activités dans le package UiPath.PDF.Activities .
Un seul workflow est requis pour les deux scénarios, commun jusqu'au point de demander à l'utilisateur de choisir la méthode de lecture souhaitée.
Voici comment le processus d'automatisation peut être créé :
- Ouvrez Studio et démarrez un nouveau Processus.
-
Faites glisser un Flowchart dans le panneau Concepteur de workflow.
-
Créez la variable suivante :
Nom de variable
Types de variables
Valeur par défaut
chooseOption
ValeurGénérique
Remarque : ajoutez vos fichiers.pdf
au répertoire du projet afin de pouvoir exécuter l'ensemble du processus à partir du même endroit ou téléchargez cet exemple afin d'utiliser le fichier donné.
-
-
Faites glisser une activité Boîte de dialogue (Input Dialog ) et connectez-la au nœud de démarrage (Start Node).
- Dans le panneau Propriétés , ajoutez l'expression
"Choose one option below:"
dans le champ Libellé . - Ajoutez l'expression
{"Read PDF Text", "Read PDF With OCR"}
dans le champ Options . - Ajoutez la valeur
"Options"
dans le champ Titre. - Ajoutez la variable
chooseOption
dans le champ Résultat.
- Dans le panneau Propriétés , ajoutez l'expression
-
Placez une activité Flow Decision sous l’activité Input Dialog et connectez-la à celle-ci.
- Dans le panneau Propriétés , ajoutez l'expression
chooseOption = "Read PDF Text"
dans le champ Condition .
- Dans le panneau Propriétés , ajoutez l'expression
-
Faites glisser un conteneur Sequence et connectez-le à la branche True (True) de l'activité Décision de flux ( Flow Decision ). Le nom de la séquence doit être Lire le texte PDF (Read PDF Text). Cette activité extrait des informations à l'aide d'expressions régulières.
-
Créez les variables suivantes :
Nom de variable
Types de variables
Valeur par défaut
extractedText
Chaîne de caractères (string)
arrayText
System.String[]
address
ValeurGénérique
city
Chaîne de caractères (string)
phoneNumber
Chaîne de caractères (string)
invoiceNumber
Chaîne de caractères (string)
vendor
ValeurGénérique
bankName
Chaîne de caractères (string)
bankAccount
Chaîne de caractères (string)
ibanCode
Chaîne de caractères (string)
-
- Faites glisser un conteneur Sequence et connectez-le à la branche Faux (False) de l'activité Décision de flux ( Flow Decision ). Le nom de la séquence doit être Read PDF With OCR (Read PDF With OCR). Cette activité extrait des informations à l'aide d'un moteur OCR (Microsoft OCR et Tesseract OCR).
-
Créez la variable suivante :
Nom de variable
Types de variables
Valeur par défaut
extractedTextTesseract
Chaîne de caractères (string)
extractedTextMicrosoft
Chaîne de caractères (string)
Voici à quoi devrait ressembler votre workflow jusqu’à présent :
Lire un fichier PDF à l'aide de l'activité Lire le texte PDF (Read PDF Text)
- Ouvrez le conteneur de séquence Lire le texte PDF en double-cliquant dessus.
-
Faites glisser une activité Lire le texte PDF (Read PDF Text) à l’intérieur de la séquence.
- Dans le panneau Propriétés , ajoutez l'expression
"NPO Invoice.pdf"
dans le champ NomFichier . - Ajoutez la valeur
"All"
dans le champ Plage (Range ). - Ajoutez la variable
extractedText
dans le champ Texte.
- Dans le panneau Propriétés , ajoutez l'expression
-
Placez une activité Assign (Assign) sous l'activité Lire le texte PDF (Read PDF Text) .
- Ajoutez la variable
arrayText
dans le champ À. - Ajoutez l’expression
extractedText.Split(Environment.NewLine.ToArray, StringSplitOptions.RemoveEmptyEntries)
dans le champ Valeur.
- Ajoutez la variable
-
Faites glisser une activité If sous l’activité Assign .
- Ajoutez l’expression
arrayText(0).Equals("Tiefland Glass AG")
dans le champ Condition.
- Ajoutez l’expression
-
Faites glisser une activité Assign dans le conteneur Sequence.
- Ajoutez la variable
address
dans le champ À. - Ajoutez l’expression
arrayText(2)
dans le champ Valeur.
- Ajoutez la variable
-
Ajoutez une autre activité Attribuer (Assign) et placez-la sous la précédente.
- Ajoutez la variable
city
dans le champ À. - Ajoutez l’expression
arrayText(3).Split(","c)(0)
dans le champ Valeur.
- Ajoutez la variable
-
Ajoutez une autre activité Attribuer (Assign) et placez-la sous la précédente.
- Ajoutez la variable
phoneNumber
dans le champ À. - Ajoutez l’expression
arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)
dans le champ Valeur.
- Ajoutez la variable
-
Ajoutez une autre activité Attribuer (Assign) et placez-la sous la précédente.
- Ajoutez la variable
invoiceNumber
dans le champ À. - Ajoutez l’expression
arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)
dans le champ Valeur.
- Ajoutez la variable
-
Ajoutez une autre activité Attribuer (Assign) et placez-la sous la précédente.
- Ajoutez la variable
vendor
dans le champ À. - Ajoutez l’expression
arrayText(arrayText.Count-5)
dans le champ Valeur.
- Ajoutez la variable
-
Faites glisser une activité Assign (Assign ) dans le champ Sinon ( Else ).
- Ajoutez la variable
address
dans le champ À. - Ajoutez l’expression
arrayText(1)
dans le champ Valeur.
- Ajoutez la variable
-
Ajoutez une autre activité Attribuer (Assign) et placez-la sous la précédente.
- Ajoutez la variable
city
dans le champ À. - Ajoutez l’expression
arrayText(2).Split(","c)(0)
dans le champ Valeur.
- Ajoutez la variable
-
Ajoutez une autre activité Attribuer (Assign) et placez-la sous la précédente.
- Ajoutez la variable
phoneNumber
dans le champ À. - Ajoutez l’expression
arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)
dans le champ Valeur.
- Ajoutez la variable
-
Ajoutez une autre activité Attribuer (Assign) et placez-la sous la précédente.
- Ajoutez la variable
invoiceNumber
dans le champ À. - Ajoutez l’expression
arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)
dans le champ Valeur.
- Ajoutez la variable
-
Ajoutez une autre activité Attribuer (Assign) et placez-la sous la précédente.
- Ajoutez la variable
vendor
dans le champ À. -
Ajoutez l’expression
arrayText(arrayText.Count-5)
dans le champ Valeur.Voici à quoi devrait ressembler votre séquence jusqu’à présent :
- Ajoutez la variable
-
Placez une activité For Each sous le conteneur If et double-cliquez sur l’activité pour l’ouvrir.
- Ajoutez la variable
arrayText
dans le champ Valeur (Value).
- Ajoutez la variable
-
Faites glisser une activité If à l’intérieur du conteneur Body de l’activité For Each .
- Ajoutez l’expression
item.Contains("Bank Name:")
dans le champ Condition.
- Ajoutez l’expression
-
Faites glisser une activité Assign (Assign ) dans le champ Alors (Then).
- Ajoutez la variable
bankName
dans le champ À. - Ajoutez l’expression
item.Split(":"c)(1)
dans le champ Valeur.
- Ajoutez la variable
-
Placez une activité If en dessous de la précédente.
- Ajoutez l’expression
item.Contains("Bank Account:")
dans le champ Condition.
- Ajoutez l’expression
-
Faites glisser une activité Assign (Assign ) dans le champ Alors (Then).
- Ajoutez la variable
bankName
dans le champ À. - Ajoutez l’expression
item.Split(":"c)(1)
dans le champ Valeur.
- Ajoutez la variable
-
Placez une activité If en dessous de la précédente.
- Ajoutez l’expression
item.contains("IBAN Code:")
dans le champ Condition.
- Ajoutez l’expression
-
Faites glisser une activité Assign (Assign ) dans le champ Alors (Then).
- Ajoutez la variable
ibanCode
dans le champ À. -
Ajoutez l’expression
item.Split(":"c)(1)
dans le champ Valeur.Voici à quoi devrait ressembler le conteneur For Each :
- Ajoutez la variable
-
Revenez à la séquence Lire le texte PDF (Read PDF Text) et faites glisser une activité Écrire un fichier texte ( Write Text File ) sous l'activité Pour chaque ( For Each ).
- Ajoutez la valeur
"InvoiceDetails.txt"
dans le champ NomFichier . -
Ajoutez l'expression
"Invoice details"+Environment.NewLine+Environment.NewLine+"Vendor: "+vendor+Environment.NewLine+"Vendor address: "+address+Environment.NewLine+"City: "+city+Environment.NewLine+"Phone number:"+phoneNumber+Environment.NewLine+"Invoice number:"+invoiceNumber+Environment.NewLine+"Bank name:"+bankName+Environment.NewLine+"Bank account:"+bankAccount+Environment.NewLine+"IBAN Code:"+ibanCode
dans le champ Texte.Voici à quoi devrait ressembler le conteneur For Each :
- Ajoutez la valeur
- Revenez à la zone de travail du workflow principal .
Lire un fichier PDF à l’aide de l’activité Lire le PDF avec OCR (Read PDF with OCR)
- Ouvrez le conteneur de séquence Lire le PDF avec OCR en double-cliquant dessus.
-
Faites glisser une activité Read PDF With OCR à l’intérieur de la séquence.
- Ajoutez la valeur
"Invoice02.pdf"
dans le champ NomFichier . - Dans le panneau Propriétés, ajoutez la valeur
1
dans le champ LigneTableau.
- Ajoutez la valeur
-
Faites glisser le moteur OCR de Google à l'intérieur de l'activité Lire le PDF avec OCR (Read PDF With OCR) .
- Dans le panneau Propriétés , ajoutez la variable
extractedTextTesseract
dans le champ Texte .
- Dans le panneau Propriétés , ajoutez la variable
-
Faites glisser une autre activité Lire le PDF avec OCR et placez-la sous la précédente.
- Ajoutez la valeur
"Invoice02.pdf"
dans le champ NomFichier . - Dans le panneau Propriétés, ajoutez la valeur
1
dans le champ LigneTableau.
- Ajoutez la valeur
-
Faites glisser le moteur OCR Microsoft à l'intérieur de l'activité Lire le PDF avec OCR (Read PDF With OCR) .
- Dans le panneau Propriétés , ajoutez la variable
extractedTextMicrosoft
dans le champ Texte .
- Dans le panneau Propriétés , ajoutez la variable
-
Faites glisser une activité Write Text File sous l’activité Read PDF With OCR (Read PDF With OCR) .
- Ajoutez la valeur
"OCRMicrosoft.txt"
dans le champ NomFichier . - Ajoutez la variable
extractedTextMicrosoft
dans le champ Texte.
- Ajoutez la valeur
-
Faites glisser une activité Write Text File sous l’activité Write Text File précédente.
- Ajoutez la valeur
"OCRTesseract.txt"
dans le champ NomFichier . -
Ajoutez la variable
extractedTextTesseract
dans le champ Texte.Voici à quoi devrait ressembler la séquence Lire le PDF avec OCR :
- Ajoutez la valeur
- Exécutez le processus. Le robot extrait les données à l'aide du processus spécifié et enregistre la sortie dans un fichier
.txt
.
Téléchargez un exemple ici.