以下的例子通过使用Read PDF Text 或 Read PDF with OCR过程说明如何读取PDF文件,使用专门的流程提取数据并保存输出的数据。你可以在UiPath.PDF.Activities 包找到这些过程。
这是自动化流程建立的方法:
-
Open Studio and create a new Process.打开Studio并建立新流程
-
Drag a Flowchart container in the Workflow Designer.拖动一个Flowchart容器到Workflow设计器。
建立以下变量:
注意:将你的PDF文件放在项目的路径以确保运行的流程是在一个地方。 -
拖一个Input Dialog过程并联接Start Node
在属性Properities面板,在Label标签域输入表达式”choose one option below:“。
在Option选项域输入{“Read PDF Text”,”Read PDF with OCR”}。
在Title标题域输入值”Option”。
在Result域输入变量chooseOption。 -
将Flow Decision活动放在Input Dialog活动下面并连接两者。
在属性面板,在Codition域输入表达式chooseOption = “Read PDF Text”。 -
拖一个Sequence顺序容器并和Flow Decision的True分支连起来。Sequence的名字应命名为Read PDF Text.这个活动使用正则表达式提取信息。
建立以下变量
-
双击打开Sequence容器。
-
拖一个Read PDF Text活动进Sequence.
在属性面板,输入表达式”NPO Invoice.pdf”在FileName域。
在Range域输入值 “All”.
在Text域输入变量extractedText. -
拉Assign活动到Read PDF Text活动下方。
在To域输入arrayText变量。
在Value域输入表达式extractedText.split(Environment.NewLine.ToArray,stringSplitOptions.RemoveEmptyEntries) -
拉一个If活动到Assign活动下方。
在Condition域输入表达式 arrayText(0).Equals(“Tiefland Glass AG”). -
将一个Sequence容器放进Then域。
-
拖一个Assign活动进Sequence容器。
在To域输入address变量。
在Value域输入表达式arrayText(2)。 -
拖另一个Assign活动并放在前一个活动下面。
在To域输入变量city.
在Value域输入表达式 arrayText(3).split(“,”c)(0). -
拖动另一个Assign活动并放在前一个活动下面。
在To域输入变量phoneNumber。
在Value域输入表达式 arrayText(4).split(“:”c)(1).split({“INVOICE”},stringSplitOptions.None)(0). -
拖动另一个Assign活动并放在上一个活动下面。
在To域输入变量invoiceNumber.
在Value域输入表达式 arrayText(4).split(“:”c)(1).split({“INVOICE”},stringSplitOptions.None)(1).split(“#”c)(1). -
拖动另一个Assign活动并放在上一个活动下面。
在To域输入变量vendor.
在Value域输入表达式 arrayText(arrayText.count-5) -
将一个Sequence放进Else域。
-
拖动一个Assign活动进Sequence容器。
在To域输入变量address.
在Value域输入表达式 arrayText(1). -
拖动另一个Assign活动并放在上一个活动下面。
在To域输入变量city.
在Value域输入表达式 arrayText(2).split(“,”c)(0). -
拖动另一个Assign活动并放在上一个活动下面。
在To域输入变量phoneNumber.
在Value域输入表达式 arrayText(3).split(“:”c)(1).split({“INVOICE”},stringSplitOptions.None)(0) -
拖动另一个Assign活动并放在上一个活动下面。
在To域输入变量invoiceNumber.
在Value域输入表达式 arrayText(3).split(“:”c)(1).split({“INVOICE”},stringSplitOptions.None)(1).split(“#”c)(1). -
拖动另一个Assign活动并放在上一个活动下面。
在To域输入变量vendor.
在Value域输入表达式 arrayText(arrayText.count-5) -
放一个For Each活动在If容器下方。
-
双击打开For Each活动。
在Value域输入变量arrayText. -
拖一个If活动进For Each活动的Body容器
在Conditon域输入表达式 item.Contains(“Bank Name:”). -
拖动另一个Assign活动进Then域。
在To域输入变量bankName.
在Value域输入表达式 item.Split(“:”c)(1). -
放一个If活动在之前活动下方。
在Condition域输入 item.contains(“Bank Account:”). -
拖动另一个Assign活动并放进Then域。
在To域输入变量bankName.
在Value域输入表达式 item.Split(“:”c)(1). -
放一个If活动在先前一个活动下方。
在Condition域输入表达式 item.contains(“IBAN Code:”). -
拖动一个Assign活动并放进Then域。
在To域输入变量ibanCode.
在Value域输入表达式 item.Split(“:”c)(1). -
将Write Text File活动放在For Each活动下方。
在属性面板的FileName域输入InvoiceDetails.text
在Text域输入”Invoice details” +Enviroment.NewLine+Environment.NewLine+”vendor: ”+vendor+Environment.NewLin+”vendor address: “+address+Environment.NewLine+”Cit: “+city+Environment.NewLine+ “Phone number:”+phoneNumber+Environment.NewLine+”Invoice number:”+invoiceNumber +Environment.NewLine+”Bank name:”+Bank name:” +bankName+Environment.NewLine+”Bank account:”+bankAccount+Environment.NewLine+”IBANKCode:”+ibankCode -
返回Main流程。
-
拖动一个Sequence容器并和Flow Decision的False连接。Sequence的名字应为Read With OCR.这个活动通过使用OCR引擎(微软的OCR和Tesseract OCR)提取信息.
创建以下变量:
-
打开Sequence容器并双击。
-
拖动一个Read PDF With OCR活动进Sequence.
在属性面板,在FileName域输入”Invoice02.pdf”。
在DegreeOfParallelism域输入1。
在ImageDpi下拉列表选择值150.
在Range域输入”All”. -
拉Tesseract OCR引擎进Read PDF With OCR活动。
在属性面板,Image域输入值Image。
在Language域输入“eng”。
在Profile下拉列表选择None选项。
在Scale域输入数值2.
在Text域增加变量extractedTextTesseract -
拉另一个Read PDF With OCR活动进Sequence并放在上一个活动下方。
在属性面板,在FileName域输入值”Invoice02.pdf”。
在DegreeOfParallelism域输入值1。
在ImageDpi下拉列表选择值150。
在Range域输入”All”. -
拉Microsoft OCR引擎进Read PDF With OCR活动。
在属性面板,在Imge域输入值”Image”。
在Language域输入“eng”。
在Profile下拉列表选择None选项。
在Scale域输入数值1.
在Text域增加变量extractedTextMicrosoft. -
拖动一个Write Text File活动到Read PDF With OCR活动下方。
在属性面板,在FileName域输入值”OCRMicrosoft.txt”。
在Text域增加变量extractedTextMicrosoft. -
拖动一个Write Text File活动到Write Text File活动下方。
在属性面板,在FileName域输入值”OCRTesseract.txt”。
在Text域增加变量extractedTextTesseract… -
运行流程。机器人使用这个专用流程提取出数据并保存在输出文件.txt.