【问题标题】:Uipath - How to extract A table from a pdfUipath - 如何从 pdf 中提取表格
【发布时间】:2021-04-26 04:11:41
【问题描述】:

您好,我找到了一些有关如何执行此操作的视频和文本,但它们对这项任务没有帮助。 我知道如何获取一个值但不提取表格。

如果可能,我希望将其导出到数据库或 Excel 中。但我无法弄清楚。 我什至尝试更改“更改阅读选项”

我尝试“数据抓取”,但程序只是说 “此控制器不支持数据提取” 不能再像一张桌子了。

我听说这不可能是因为 PDF 的结构不好。 仍然没有更多的方法可以做到这一点。

【问题讨论】:

  • 你读过这篇文章了吗? edureka.co/blog/uipath-pdf-data-extraction
  • @kwoxer 我还没有看到,但这是我谈到的数据抓取不起作用的事情。而且它不是我要寻找的单一目标。我需要它来了解我的孔表 =)
  • 程序无法理解我认为的 PDF 结构,所以我需要一个替代方案。
  • 在 stackoverflow 上搜索“Camelot”。可能值得一试:github.com/atlanhq/camelot
  • 但我认为他需要 UiPath。

标签: uipath uipath-studio


【解决方案1】:

不幸的是,UiPath 中没有直接从 PDF 读取表格的活动。 (截至今天。)那是个坏消息。好消息是您可以访问 PDF 的内容。要么直接使用 UiPath.PDF.Activities.ReadPDFText 获取数据(作为纯文本),要么必须使用 OCR。 @kwoxer 提供了一个很好的链接来解释这个主题。 我已经能够从 PDF 文档中包含的表中提取数据。那时,我很幸运:ReadPDFText 提取了所有内容。表格元素由制表符 ("\t") 分隔。并且表头包含一个没有出现在文档其他地方的单词。

只是作为一个想法,我是这样进行的:

  1. 使用 UiPath.PDF.Activities.ReadPDFText 从 PDF 文档中提取文本。
  2. 创建一个数组,其中的元素是文档中的行。 (使用 Environment.NewLine 和选项 StringSplitOptions.RemoveEmptyEntries 进行拆分)
  3. 在循环中遍历行 (ForEach),直到找到表头。 (StartsWith 或 Contains 等)
  4. 只要包含制表符,下一行就属于该表。 (否则桌子就结束了。)
  5. 按制表符拆分当前行并将其存储在数组中:数组的元素是行的各个单元格。

我希望,这个想法有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-09
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多