- Ü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
- ExtractorAsyncCodeActivity-Klasse
- ExtractorCodeActivity-Klasse
- ExtractorDocumentType-Klasse
- ExtractorDocumentTypeCapabilities-Klasse
- ExtractorFieldCapability-Klasse
- ExtractorNativeActivity-Klasse
- ExtractorResult-Klasse
- 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
- 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
- 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
- Document Understanding Digitizer
- Document Understanding ML
- Document Understanding OCR Local Server
- Document Understanding
- Versionshinweise
- Über das Document Understanding-Aktivitätspaket
- Projektkompatibilität
- 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
- Konfigurieren der Authentifizierung
- 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
- Wait For Document Classification Action And Resume
- Klassifizierer-Scope trainieren
- Keyword Based Classifier Trainer
- Intelligent Keyword Classifier Trainer
- Datenextraktionsumfang
- Document Understanding-Projektextraktor
- Regex Based Extractor
- Form Extractor
- Extraktor für intelligente Formulare
- Aktuelle Validierungsstation
- Create Document Validation Action
- Wait For Document Validation Action And Resume
- Train Extractors Scope
- Extraktionsergebnisse exportieren
- 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
Read PDF Files
.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.
.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 Text With OCR verwendet wird.Der Hauptunterschied zwischen den beiden Szenarien besteht darin, dass das zweite auch OCR-Module verwendet, was bedeutet, dass die Details der extrahierten Informationen genauer sind als im ersten Fall, wenn die analysierte Datei ein Bild ist, gescannt wurde oder signierte oder handgeschriebene Felder enthält. Sie finden beide Aktivitäten 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 mit dem Namen
chooseOption
mit dem Typ GenericValue und ohne Standardwert.Hinweis: Fügen Sie Ihre.pdf
-Dateien zum Projektverzeichnis hinzu, um den gesamten Prozess an derselben Stelle ausführen zu können, oder laden Sie dieses Beispiel herunter, um die angegebene Datei zu verwenden.
- Erstellen Sie eine Variable mit dem Namen
- Fügen Sie eine Input Dialog-Aktivität hinzu und verbinden Sie sie mit dem Startknoten.
- Fügen Sie im Panel Eigenschaften den Ausdruck
"Choose one option below:"
im Feld Beschriftung hinzu. - Fügen Sie den Ausdruck
{"Read PDF Text", "Read PDF With OCR"}
im Feld Optionen hinzu. - Fügen Sie den Wert
"Options"
in das Feld Titel ein. - Fügen Sie die Variable
chooseOption
in das Feld Ergebnis ein.
- Fügen Sie im Panel Eigenschaften 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 Panel Eigenschaften den Ausdruck
chooseOption = "Read PDF Text"
im Feld Bedingung hinzu.
- Fügen Sie im Panel Eigenschaften 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
extractedText
String
Keine Angabe arrayText
System.String[]
Keine Angabe address
GenericValue
Keine Angabe city
String
Keine Angabe phoneNumber
String
Keine Angabe invoiceNumber
String
Keine Angabe vendor
GenericValue
Keine Angabe bankName
String
Keine Angabe bankAccount
String
Keine Angabe ibanCode
String
Keine Angabe
- Erstellen Sie die in der folgenden Tabelle gezeigten Variablen:
- 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
extractedTextTesseract
String
Keine Angabe extractedTextMicrosoft
String
Keine Angabe
Abbildung 1. Übersicht über den Beginn des Workflows
- Erstellen Sie die in der folgenden Tabelle gezeigten Variablen:
- 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.
- Fügen Sie im Panel Eigenschaften den Ausdruck
"NPO Invoice.pdf"
im Feld Dateiname hinzu . - Fügen Sie den Wert
"All"
im Feld Bereich hinzu. - Fügen Sie die Variable
extractedText
in das Feld Text ein.
- Fügen Sie im Panel Eigenschaften den Ausdruck
- Fügen Sie eine Assign-Aktivität nach der Aktivität Read PDF Text hinzu.
- Fügen Sie die Variable
arrayText
im 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
address
im 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
city
im 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
phoneNumber
im 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
invoiceNumber
im 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
vendor
im 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
address
im 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
city
im 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
phoneNumber
im 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
invoiceNumber
im 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
vendor
im 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
- Fügen Sie die Variable
- Setzen Sie eine For Each-Aktivität hinter den If-Container.
- Fügen Sie die Variable
arrayText
im 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
bankName
im 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
bankName
im 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
ibanCode
im 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
- Fügen Sie die Variable
- 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.
- Fügen Sie den Wert
"InvoiceDetails.txt"
im Feld FileName hinzu . - 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:"+ibanCode
in das Feld Text ein.Abbildung 4. Übersicht über die For Each-Aktivität
- Fügen Sie den Wert
- Kehren Sie zum Hauptworkflow -Arbeitsbereich zurück.
- Lesen Sie eine PDF-Datei mit der Aktivität Read PDF With OCR.
- Öffnen Sie den Sequence-Container PDF mit OCR lesen.
- Ziehen Sie eine Aktivität „PDF mit OCR lesen“ in die Sequenz.
- Fügen Sie den Wert
"Invoice02.pdf"
im Feld FileName hinzu . - Fügen Sie im Eigenschaftenbereich den Wert
1
in das Feld Parallelitätsgrad ein.
- Fügen Sie den Wert
- Ziehen Sie die Google OCR -Engine in die Aktivität PDF mit OCR lesen .
- Fügen Sie im Panel Eigenschaften die Variable
extractedTextTesseract
im Feld Text hinzu.
- Fügen Sie im Panel Eigenschaften die Variable
- Ziehen Sie eine weitere Read PDF With OCR-Aktivität unter die vorherige.
- Fügen Sie den Wert
"Invoice02.pdf"
im Feld FileName hinzu . - Fügen Sie im Eigenschaftenbereich den Wert
1
in das Feld Parallelitätsgrad ein.
- Fügen Sie den Wert
- Ziehen Sie das Microsoft OCR -Modul in die Aktivität PDF mit OCR lesen ( Read PDF With OCR) .
- Fügen Sie im Panel Eigenschaften die Variable
extractedTextMicrosoft
im Feld Text hinzu.
- Fügen Sie im Panel Eigenschaften die Variable
- Ziehen Sie eine Aktivität „Textdatei schreiben“ unter die Aktivität „PDF mit OCR lesen“ .
- Fügen Sie den Wert
"OCRMicrosoft.txt"
im Feld FileName hinzu . - Fügen Sie die Variable
extractedTextMicrosoft
in das Feld Text ein.
- Fügen Sie den Wert
- Ziehen Sie eine „Write Text File“ -Aktivität unter die vorherige „Write Text File“ -Aktivität.
- Fügen Sie den Wert
"OCRTesseract.txt"
im Feld FileName hinzu . - Fügen Sie die Variable
extractedTextTesseract
in das Feld Text ein.Abbildung 5. Übersicht über die Aktivität Read PDF with OCR
- Fügen Sie den Wert
- Führen Sie den Prozess aus. Der Roboter extrahiert die Daten mit dem angegebenen Prozess und speichert die Ausgabe in einer
.txt
-Datei.
ZIP
-Format herunterzuladen: Beispiel.