- Überblick
- Verträge zur Dokumentverarbeitung
- Versionshinweise
- Über die DocumentProcessing-Verträge
- Box-Klasse
- IPersistedActivity-Schnittstelle
- PrettyBoxConverter-Klasse
- IClassifierActivity-Schnittstelle
- IClassifierCapabilitiesProvider-Schnittstelle
- ClassifierDocumentType-Klasse
- ClassifierResult-Klasse
- ClassifierCodeActivity-Klasse
- ClassifierNativeActivity-Klasse
- ClassifierAsyncCodeActivity-Klasse
- ClassifierDocumentTypeCapability-Klasse
- ContentValidationData Class
- EvaluatedBusinessRulesForFieldValue Class
- EvaluatedBusinessRuleDetails Class
- ExtractorAsyncCodeActivity-Klasse
- ExtractorCodeActivity-Klasse
- ExtractorDocumentType-Klasse
- ExtractorDocumentTypeCapabilities-Klasse
- ExtractorFieldCapability-Klasse
- ExtractorNativeActivity-Klasse
- ExtractorResult-Klasse
- FieldValue Class
- FieldValueResult Class
- ICapabilitiesProvider-Schnittstelle
- IExtractorActivity-Schnittstelle
- ExtractorPayload-Klasse
- DocumentActionPriority-Enumeration
- DocumentActionData-Klasse
- DocumentActionStatus-Enumeration
- DocumentActionType-Enumeration
- DocumentClassificationActionData-Klasse
- DocumentValidationActionData-Klasse
- UserData-Klasse
- Document-Klasse
- DocumentSplittingResult-Klasse
- DomExtensions-Klasse
- Page-Klasse
- PageSection-Klasse
- Polygon-Klasse
- PolygonConverter-Klasse
- Metadatenklasse
- WordGroup-Klasse
- Word-Klasse
- ProcessingSource-Enumeration
- ResultsTableCell-Klasse
- ResultsTableValue-Klasse
- ResultsTableColumnInfo-Klasse
- ResultsTable-Klasse
- Rotation-Enumeration
- Rule Class
- RuleResult Class
- RuleSet Class
- RuleSetResult Class
- SectionType-Enumeration
- WordGroupType-Enumeration
- IDocumentTextProjection-Schnittstelle
- ClassificationResult-Klasse
- ExtractionResult-Klasse
- ResultsDocument-Klasse
- ResultsDocumentBounds-Klasse
- ResultsDataPoint-Klasse
- ResultsValue-Klasse
- ResultsContentReference-Klasse
- ResultsValueTokens-Klasse
- ResultsDerivedField-Klasse
- ResultsDataSource-Enumeration
- ResultConstants-Klasse
- SimpleFieldValue-Klasse
- TableFieldValue-Klasse
- DocumentGroup-Klasse
- DocumentTaxonomy-Klasse
- DocumentType-Klasse
- Field-Klasse
- FieldType-Enumeration
- FieldValueDetails Class
- LanguageInfo-Klasse
- MetadataEntry-Klasse
- TextType-Aufzählung
- TypeField-Klasse
- ITrackingActivity-Schnittstelle
- ITrainableActivity-Schnittstelle
- ITrainableClassifierActivity-Schnittstelle
- ITrainableExtractorActivity-Schnittstelle
- TrainableClassifierAsyncCodeActivity-Klasse
- TrainableClassifierCodeActivity-Klasse
- TrainableClassifierNativeActivity-Klasse
- TrainableExtractorAsyncCodeActivity-Klasse
- TrainableExtractorCodeActivity-Klasse
- TrainableExtractorNativeActivity-Klasse
- BasicDataPoint-Klasse – Vorschau
- ExtractionResultHandler-Klasse – Vorschau
- Document Understanding ML
- Document Understanding OCR Local Server
- Document Understanding
- Versionshinweise
- Über das Document Understanding-Aktivitätspaket
- Projektkompatibilität
- Konfigurieren einer externen Verbindung
- PDF-Passwort festlegen
- Merge PDFs
- Get PDF Page Count
- Extract PDF Text
- Extract PDF Images
- PDF-Seitenbereich extrahieren
- Extract Document Data
- Validierungsaufgabe erstellen und warten
- Wait for Validation Task and Resume
- Create Validation Task
- Dokument klassifizieren (Classify Document)
- Create Classification Validation Task
- Create Classification Validation Task and Wait
- Wait For Classification Validation Task And Resume
- IntelligentOCR
- Versionshinweise
- Über das IntelligentOCR-Aktivitätspaket
- Projektkompatibilität
- Taxonomie laden (Load Taxonomy)
- Digitalisieren von Dokumenten
- Dokumentbereich klassifizieren (Classify Document Scope)
- Schlüsselwortbasierte Classifier (Keyword Based Classifier)
- Document Understanding-Projektklassifizierer
- Intelligenter Schlüsselwortklassifizierer
- Create Document Validation Action
- Create Document Validation Artifacts
- Artefakte der Dokumentvalidierung abrufen
- Wait For Document Classification Action And Resume
- Klassifizierer-Scope trainieren
- Keyword Based Classifier Trainer
- Intelligent Keyword Classifier Trainer
- Datenextraktionsumfang
- Document Understanding-Projektextraktor
- Document Understanding Project Extractor Trainer
- Regex Based Extractor
- Form Extractor
- Extraktor für intelligente Formulare
- Dokument zensieren
- Create Document Validation Action
- Wait For Document Validation Action And Resume
- Train Extractors Scope
- Extraktionsergebnisse exportieren
- Machine Learning Extractor
- Machine Learning Extractor Trainer
- Machine Learning Classifier
- Machine Learning Classifier Trainer
- Generativer Klassifizierer
- Generativer Extraktor
- Konfigurieren der Authentifizierung
- ML-Services
- OCR
- OCR-Verträge
- Versionshinweise
- Über die OCR-Verträge
- Projektkompatibilität
- IOCRActivity-Schnittstelle
- OCRAsyncCodeActivity-Klasse
- OCRCodeActivity-Klasse
- OCRNativeActivity-Klasse
- Character-Klasse
- OCRResult-Klasse
- Word-Klasse
- FontStyles-Enumeration
- OCRRotation-Enumeration
- OCRCapabilities-Klasse
- OCRScrapeBase-Klasse
- OCRScrapeFactory-Klasse
- ScrapeControlBase-Klasse
- ScrapeEngineUsages-Enumeration
- ScrapeEngineBase
- ScrapeEngineFactory-Klasse
- ScrapeEngineProvider-Klasse
- OmniPage
- PDF
- [Nicht aufgeführt] Abbyy
- Versionshinweise
- Über das Abbyy-Aktivitätspaket
- Projektkompatibilität
- Abbyy OCR
- Abbyy Cloud OCR
- FlexiCapture Classifier
- FlexiCapture Extractor
- FlexiCapture Scope
- Dokument klassifizieren (Classify Document)
- Dokument verarbeiten (Process Document)
- Dokument validieren (Validate Document)
- Dokument exportieren (Export Document)
- Feld erhalten (Get Field)
- Tabelle erhalten (Get Table)
- Vorbereiten der Validierungsstationsdaten
- [Nicht aufgeführt] Abbyy Embedded

Document Understanding-Aktivitäten
Read PDF Files
Sie können den Inhalt von .pdf -Dateien lesen und separat extrahieren, indem Sie Aktivitäten verwenden, die alle im Dokument enthaltenen Zeichen lesen können.
Je nach Ihren Anforderungen können Sie eine einfache Aktivität verwenden, die die Zeichen erkennt, oder eine mit einem OCR-Modul verwenden. Die Vorteile der Verwendung einer OCR-Engine bestehen darin, dass das Lesen von Dokumenten sogar auf gescannte, signierte oder handschriftliche Dokumente angewendet werden kann.
Das folgende Beispiel zeigt zwei Situationen beim Lesen einer .pdf -Datei:
- In der ersten wird erklärt, wie die
.pdf-Datei gelesen wird, während die Aktivität Read PDF Text verwendet wird. - In der zweiten wird erklärt, wie die
.pdf-Datei gelesen wird, während die Aktivität Read PDF With OCR verwendet wird. Der Hauptunterschied zwischen den beiden Szenarien besteht darin, dass das zweite Szenario auch OCR-Engines verwendet, was bedeutet, dass die Details der extrahierten Informationen genauer sind als im ersten Fall, wenn es sich bei der analysierten Datei um ein Bild oder gescannt handelt oder signierte oder handschriftliche Felder enthält. Beide Aktivitäten finden Sie im Paket UiPath.PDF.Activities .
Für beide Szenarien ist nur ein Workflow erforderlich, der bis zu dem Punkt gilt, an dem der Benutzer aufgefordert wird, die gewünschte Lesemethode auszuwählen.
Schritte
- Öffnen Sie Studio und erstellen Sie einen neuen Prozess.
- Fügen Sie einen Flowchart-Container zum Workflow-Designer hinzu.
- Erstellen Sie eine Variable namens
chooseOptionmit dem Typ GenericValue und ohne Standardwert.Hinweis:Add your
.pdffiles to the project directory in order to be able to run the entire process from the same place or download this example in order to use the given file.
- Erstellen Sie eine Variable namens
- Fügen Sie eine Input Dialog-Aktivität hinzu und verbinden Sie sie mit dem Startknoten.
- Fügen Sie im Eigenschaftenbereich den Ausdruck
"Choose one option below:"in das Feld Bezeichnung ein. - Add the expression
{"Read PDF Text", "Read PDF With OCR"}in the Options field. - Fügen Sie den Wert
"Options"in das Feld Titel ein. - Fügen Sie die Variable
chooseOptionin das Feld Ergebnis ein.
- Fügen Sie im Eigenschaftenbereich den Ausdruck
- Fügen Sie eine Flow Decision-Aktivität nach der Aktivität Input Dialog hinzu, und verbinden Sie sie mit dieser.
- Fügen Sie im Eigenschaftenbereich den Ausdruck
chooseOption = "Read PDF Text"in das Feld Bedingung ein.
- Fügen Sie im Eigenschaftenbereich den Ausdruck
- Fügen Sie einen Sequence-Container hinzu und verbinden Sie ihn mit der Verzweigung True der Flow Decision-Aktivität. Der Name der Sequence muss Read PDF Text sein. Diese Aktivität extrahiert Informationen mithilfe regulärer Ausdrücke.
-
Erstellen Sie die in der folgenden Tabelle gezeigten Variablen:
Tabelle 1. Zu erstellende Variablen
Variablentyp Standardwert extractedTextString Keine Angabe arrayTextSystem.String[] Keine Angabe addressGenericValue Keine Angabe cityString Keine Angabe phoneNumberString Keine Angabe invoiceNumberString Keine Angabe vendorGenericValue Keine Angabe bankNameString Keine Angabe bankAccountString Keine Angabe ibanCodeString Keine Angabe
-
- Fügen Sie einen Sequence-Container hinzu und verbinden Sie ihn mit der Verzweigung False der Flow Decision-Aktivität. Der Name der Sequence muss Read PDF With OCR sein. Diese Aktivität extrahiert Informationen mithilfe eines OCR-Moduls (Microsoft OCR und Tesseract OCR).
-
Erstellen Sie die in der folgenden Tabelle gezeigten Variablen:
Tabelle 2. Zu erstellende Variablen
Variablentyp Standardwert extractedTextTesseractString Keine Angabe extractedTextMicrosoftString Keine Angabe Abbildung 1. Übersicht über den Beginn des Workflows

-
- Lesen Sie eine PDF-Datei mit der Aktivität Read PDF Text:
- Öffnen Sie den Sequence-Container PDF-Text lesen, indem Sie darauf doppelklicken.
- Fügen Sie eine Read PDF Text-Aktivität in die Sequence ein.
- In the Properties panel, add the expression
"NPO Invoice.pdf"in the FileName field. - Add the value
"All"in the Range field. - Fügen Sie die Variable
extractedTextin das Feld Text ein.
- In the Properties panel, add the expression
- Fügen Sie eine Assign-Aktivität nach der Aktivität Read PDF Text hinzu.
- Fügen Sie die Variable
arrayTextim Feld An hinzu. - Fügen Sie den Ausdruck
extractedText.Split(Environment.NewLine.ToArray, StringSplitOptions.RemoveEmptyEntries)in das Feld Wert ein.
- Fügen Sie die Variable
- Fügen Sie eine If-Aktivität unter der Assign-Aktivität hinzu.
- Fügen Sie den Ausdruck
arrayText(0).Equals("Tiefland Glass AG")in das Feld Bedingung ein.
- Fügen Sie den Ausdruck
- Fügen Sie eine Assign-Aktivität innerhalb des Sequence-Containers hinzu.
- Fügen Sie die Variable
addressim Feld An hinzu. - Fügen Sie den Ausdruck
arrayText(2)in das Feld Wert ein.
- Fügen Sie die Variable
- Ziehen Sie eine weitere Assign-Aktivität unter die vorherige.
- Fügen Sie die Variable
cityim Feld An hinzu. - Fügen Sie den Ausdruck
arrayText(3).Split(","c)(0)in das Feld Wert ein.
- Fügen Sie die Variable
- Ziehen Sie eine weitere Assign-Aktivität unter die vorherige.
- Fügen Sie die Variable
phoneNumberim Feld An hinzu. - Fügen Sie den Ausdruck
arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)in das Feld Wert ein.
- Fügen Sie die Variable
- Ziehen Sie eine weitere Assign-Aktivität unter die vorherige.
- Fügen Sie die Variable
invoiceNumberim Feld An hinzu. - Fügen Sie den Ausdruck
arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)in das Feld Wert ein.
- Fügen Sie die Variable
- Ziehen Sie eine weitere Assign-Aktivität unter die vorherige.
- Fügen Sie die Variable
vendorim Feld An hinzu. - Fügen Sie den Ausdruck
arrayText(arrayText.Count-5)in das Feld Wert ein.
- Fügen Sie die Variable
- Fügen Sie eine Assign-Aktivität in das Feld Else ein.
- Fügen Sie die Variable
addressim Feld An hinzu. - Fügen Sie den Ausdruck
arrayText(1)in das Feld Wert ein.
- Fügen Sie die Variable
- Ziehen Sie eine weitere Assign-Aktivität unter die vorherige.
- Fügen Sie die Variable
cityim Feld An hinzu. - Fügen Sie den Ausdruck
arrayText(2).Split(","c)(0)in das Feld Wert ein.
- Fügen Sie die Variable
- Ziehen Sie eine weitere Assign-Aktivität unter die vorherige.
- Fügen Sie die Variable
phoneNumberim Feld An hinzu. - Fügen Sie den Ausdruck
arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)in das Feld Wert ein.
- Fügen Sie die Variable
- Ziehen Sie eine weitere Assign-Aktivität unter die vorherige.
- Fügen Sie die Variable
invoiceNumberim Feld An hinzu. - Fügen Sie den Ausdruck
arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)in das Feld Wert ein.
- Fügen Sie die Variable
- Ziehen Sie eine weitere Assign-Aktivität unter die vorherige.
-
Fügen Sie die Variable
vendorim Feld An hinzu. -
Fügen Sie den Ausdruck
arrayText(arrayText.Count-5)in das Feld Wert ein.Abbildung 2. Übersicht über die Sequence mit den Assign- Aktivitäten

-
- Setzen Sie eine For Each-Aktivität hinter den If-Container.
- Fügen Sie die Variable
arrayTextim Feld Wert hinzu.
- Fügen Sie die Variable
- Fügen Sie eine If-Aktivität in den Textkörper-Container der Aktivität For Each ein.
- Fügen Sie den Ausdruck
item.Contains("Bank Name:")in das Feld Bedingung ein.
- Fügen Sie den Ausdruck
- Fügen Sie eine Assign-Aktivität in das Feld Then ein.
- Fügen Sie die Variable
bankNameim Feld An hinzu. - Fügen Sie den Ausdruck
item.Split(":"c)(1)in das Feld Wert ein.
- Fügen Sie die Variable
- Fügen Sie eine If-Aktivität nach der vorherigen hinzu.
- Fügen Sie den Ausdruck
item.Contains("Bank Account:")in das Feld Bedingung ein.
- Fügen Sie den Ausdruck
- Fügen Sie eine Assign-Aktivität in das Feld Then ein.
- Fügen Sie die Variable
bankNameim Feld An hinzu. - Fügen Sie den Ausdruck
item.Split(":"c)(1)in das Feld Wert ein.
- Fügen Sie die Variable
- Fügen Sie eine If-Aktivität nach der vorherigen hinzu.
- Fügen Sie den Ausdruck
item.contains("IBAN Code:")in das Feld Bedingung ein.
- Fügen Sie den Ausdruck
- Fügen Sie eine Assign-Aktivität in das Feld Then ein.
-
Fügen Sie die Variable
ibanCodeim Feld An hinzu. -
Fügen Sie den Ausdruck
item.Split(":"c)(1)in das Feld Wert ein.Abbildung 3. Übersicht über die For Each- Aktivität

-
- Kehren Sie zur Sequence PDF-Text lesen zurück und fügen Sie eine Write Text File-Aktivität unter der Aktivität For Each hinzu.
-
Add the value
"InvoiceDetails.txt"in the FileName field. -
Fügen Sie den Ausdruck
"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:"+ibanCodein das Feld Text ein.Abbildung 4. Übersicht über die For Each- Aktivität

-
- Return to the Main workflow working area.
- Lesen Sie eine PDF-Datei mit der Aktivität Read PDF With OCR.
- Öffnen Sie den Sequence-Container PDF mit OCR lesen.
- Drag a Read PDF With OCR activity inside the sequence.
- Add the value
"Invoice02.pdf"in the FileName field. - In the Properties panel, add the value
1in the DegreeOfParallelism field.
- Add the value
- Drag the Google OCR engine inside the Read PDF With OCR activity.
- Fügen Sie im Eigenschaftenbereich die Variable
extractedTextTesseractim Feld Text hinzu.
- Fügen Sie im Eigenschaftenbereich die Variable
- Ziehen Sie eine weitere Read PDF With OCR-Aktivität unter die vorherige.
- Add the value
"Invoice02.pdf"in the FileName field. - In the Properties panel, add the value
1in the DegreeOfParallelism field.
- Add the value
- Drag the Microsoft OCR engine inside the Read PDF With OCR activity.
- In the Properties panel add the variable
extractedTextMicrosoftin the Text field.
- In the Properties panel add the variable
- Drag a Write Text File activity below the Read PDF With OCR activity.
- Add the value
"OCRMicrosoft.txt"in the FileName field. - Fügen Sie die Variable
extractedTextMicrosoftin das Feld Text ein.
- Add the value
- Drag a Write Text File activity below the previous Write Text File activity.
-
Add the value
"OCRTesseract.txt"in the FileName field. -
Fügen Sie die Variable
extractedTextTesseractin das Feld Text ein.Abbildung 5. Übersicht über die Aktivität Read PDF With OCR

-
- Führen Sie den Prozess aus. Der Roboter extrahiert die Daten mit dem angegebenen Prozess und speichert die Ausgabe in einer
.txt-Datei.
Besuchen Sie den folgenden Link, um das Beispiel im ZIP -Format herunterzuladen: Beispiel.