UiPath Documentation
activities
latest
false
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。
UiPath logo, featuring letters U and I in white

Document Understanding 活动

上次更新日期 2026年4月27日

读取 PDF 文件

您可以使用可读取文档中包含的所有字符的活动来读取 .pdf 文件的内容,并单独提取其内容。

根据您的需要,您可以使用可以识别字符的简单活动,也可以将其与 OCR 引擎一起使用。 使用 OCR 引擎的好处是,甚至可以对扫描、签名或手写的文档应用文档读取。

以下示例显示了读取 .pdf 文件的两种情况:

  1. 第一个示例说明了在使用“读取 PDF 文本”活动时如何读取 .pdf 文件。
  2. 第二个示例说明了在使用“使用 OCR 读取 PDF”活动时如何读取.pdf文件。这两种场景之间的主要区别在于,第二种场景也使用 OCR 引擎,这意味着如果分析的文件是图像、扫描件或包含签名或手写字段,则提取的信息详情比第一种场景更准确。您可以在“UiPath.PDF.Activities”包中找到这两个活动。

这两种场景只需要一个工作流,直到要求用户选择所需的阅读方法为止。

步骤
  1. 打开 Studio ,创建一个新“流程”
  2. “工作流设计器”中添加“流程图”容器 。
    1. 创建名为chooseOption变量,使其类型为“通用值” ,无默认值。
      备注:

      Add your .pdf files 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.

  3. 添加“输入对话框”活动,并将其连接到“开始节点”
    1. 在“属性”面板中,向“标签”字段添加“"Choose one option below:"”表达式。
    2. Add the expression {"Read PDF Text", "Read PDF With OCR"} in the Options field.
    3. 在“标题”字段中添加值“"Options"”。
    4. 在“结果”字段中添加 chooseOption 变量。
  4. “输入对话框”活动之后添加“流程决策”活动并将这两个活动相连接。
    1. 在“属性”面板中,向“条件”字段添加表达式“chooseOption = "Read PDF Text"”。
  5. 添加一个“序列”容器,并将其连接到“流程决策”活动的“True”分支。“序列”的名称应为“读取 PDF 文本” 。此活动使用正则表达式提取信息。
    1. 创建下表中显示的变量:

      表格 1. 要创建的变量

      变量类型默认值
      extractedText字符串不适用
      arrayTextSystem.String[]不适用
      address泛型值不适用
      city字符串不适用
      phoneNumber字符串不适用
      invoiceNumber字符串不适用
      vendor泛型值不适用
      bankName字符串不适用
      bankAccount字符串不适用
      ibanCode字符串不适用
  6. 添加一个“序列”容器,并将其连接到“流程决策”活动的“False”分支。“序列”的名称应为“使用 OCR 读取 PDF” 。此活动使用 OCR 引擎(Microsoft OCR 和 Tesseract OCR)提取信息。
    1. 创建下表中显示的变量:

      表 2. 要创建的变量

      变量类型默认值
      extractedTextTesseract字符串不适用
      extractedTextMicrosoft字符串不适用

      图 1. 工作流开始概览

      工作流开始概览

  7. 使用“读取 PDF 文本”活动读取 PDF文件:
    1. 双击“读取 PDF 文本”序列容器,将其打开。
    2. 在序列中添加“读取 PDF 文本”活动。
      1. In the Properties panel, add the expression "NPO Invoice.pdf" in the FileName field.
      2. Add the value "All" in the Range field.
      3. 在“文本”字段中添加“extractedText”变量。
  8. “分配”活动拖动至“读取 PDF 文本”活动后面。
    1. 在“收件人”字段中添加“arrayText”变量。
    2. 在“值”字段添加表达式 extractedText.Split(Environment.NewLine.ToArray, StringSplitOptions.RemoveEmptyEntries)
  9. 在“分配”活动下方添加“IF 条件”活动。
    1. 在“条件”字段中添加表达式“arrayText(0).Equals("Tiefland Glass AG")”。
  10. 在“序列”容器中添加“分配”活动。
    1. 在“收件人”字段中添加“address”变量。
    2. 在“值”字段添加表达式 arrayText(2)
  11. 添加另一个“分配”活动,并将其置于上一个“分配”活动之后。
    1. 在“收件人”字段中添加“city”变量。
    2. 在“值”字段添加表达式 arrayText(3).Split(","c)(0)
  12. 添加另一个“分配”活动,并将其置于上一个“分配”活动之后。
    1. 在“收件人”字段中添加“phoneNumber”变量。
    2. 在“值”字段添加表达式 arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)
  13. 添加另一个“分配”活动,并将其置于上一个“分配”活动之后。
    1. 在“收件人”字段中添加“invoiceNumber”变量。
    2. 在“值”字段添加表达式 arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)
  14. 添加另一个“分配”活动,并将其置于上一个“分配”活动之后。
    1. 在“收件人”字段中添加“vendor”变量。
    2. 在“值”字段添加表达式 arrayText(arrayText.Count-5)
  15. “Else”字段中添加“分配”活动。
    1. 在“收件人”字段中添加“address”变量。
    2. 在“值”字段添加表达式 arrayText(1)
  16. 添加另一个“分配”活动,并将其置于上一个“分配”活动之后。
    1. 在“收件人”字段中添加“city”变量。
    2. 在“值”字段添加表达式 arrayText(2).Split(","c)(0)
  17. 添加另一个“分配”活动,并将其置于上一个“分配”活动之后。
    1. 在“收件人”字段中添加“phoneNumber”变量。
    2. 在“值”字段添加表达式 arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)
  18. 添加另一个“分配”活动,并将其置于上一个“分配”活动之后。
    1. 在“收件人”字段中添加“invoiceNumber”变量。
    2. 在“值”字段添加表达式 arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)
  19. 添加另一个“分配”活动,并将其置于上一个“分配”活动之后。
    1. 在“收件人”字段中添加“vendor”变量。

    2. 在“值”字段添加表达式 arrayText(arrayText.Count-5)

      图 2. 包含“分配”活动的序列概览

      包含“分配”活动的序列概览

  20. “IF 条件”容器之后,放置“遍历循环”活动。
    1. 在“值”字段中添加变量 arrayText
  21. “遍历循环”活动的“正文”容器中添加“ If”活动。
    1. 在“条件”字段中添加表达式“item.Contains("Bank Name:")”。
  22. “Then”字段中添加“分配”活动。
    1. 在“收件人”字段中添加“bankName”变量。
    2. 在“值”字段添加表达式 item.Split(":"c)(1)
  23. 在上一个“If 条件”活动之后添加“If 条件”活动。
    1. 在“条件”字段中添加表达式“item.Contains("Bank Account:")”。
  24. “Then”字段中添加“分配”活动。
    1. 在“收件人”字段中添加“bankName”变量。
    2. 在“值”字段添加表达式 item.Split(":"c)(1)
  25. 在上一个“If 条件”活动之后添加“If 条件”活动。
    1. 在“条件”字段中添加表达式“item.contains("IBAN Code:")”。
  26. “Then”字段中添加“分配”活动。
    1. 在“收件人”字段中添加“ibanCode”变量。

    2. 在“值”字段添加表达式 item.Split(":"c)(1)

      图 3. “遍历循环”活动概览

      “遍历循环”活动概览

  27. 返回到“读取 PDF 文本”序列,并在“遍历循环”活动下方添加“写入文本文件”活动。
    1. Add the value"InvoiceDetails.txt" in the FileName field.

    2. 在“文本”字段中添加表达式 "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

      图 4. “遍历循环”容器概览

      “遍历循环”容器概览

  28. Return to the Main workflow working area.
  29. 通过“使用OCR 读取 PDF”活动读取 PDF 文件。
    1. 打开“使用 OCR 读取 PDF”序列容器。
    2. Drag a Read PDF With OCR activity inside the sequence.
      1. Add the value "Invoice02.pdf" in the FileName field.
      2. In the Properties panel, add the value 1 in the DegreeOfParallelism field.
    3. Drag the Google OCR engine inside the Read PDF With OCR activity.
      1. 在“属性”面板中,向“文本”字段添加变量 extractedTextTesseract
    4. 拖动另一个“使用 OCR 读取 PDF”活动,并将其置于上一个“使用 OCR 读取 PDF”活动之后。
      1. Add the value "Invoice02.pdf" in the FileName field.
      2. In the Properties panel, add the value 1 in the DegreeOfParallelism field.
    5. Drag the Microsoft OCR engine inside the Read PDF With OCR activity.
      1. In the Properties panel add the variable extractedTextMicrosoft in the Text field.
    6. Drag a Write Text File activity below the Read PDF With OCR activity.
      1. Add the value "OCRMicrosoft.txt" in the FileName field.
      2. 在“文本”字段中添加“extractedTextMicrosoft”变量。
    7. Drag a Write Text File activity below the previous Write Text File activity.
      1. Add the value "OCRTesseract.txt" in the FileName field.

      2. 在“文本”字段中添加“extractedTextTesseract”变量。

        图 5. “使用 OCR 读取 PDF”活动概览

        “使用 OCR 读取 PDF”活动概览

  30. 运行流程。 机器人使用指定流程提取数据,并将输出保存在 .txt 文件中。

请访问以下链接,将该示例下载为ZIP格式的文件:示例

    此页面有帮助吗?

    连接

    需要帮助? 支持

    想要了解详细内容? UiPath Academy

    有问题? UiPath 论坛

    保持更新