当前位置: 首页 > 面试题库 >

从一组PDF文件中提取表格内容

湛铭
2023-03-14
问题内容

我有一堆PDF-可能是数百或数千。它们的格式并非全部相同,但是它们中的任何一个都可以具有一个或多个表,这些表包含我想收集到单独数据库中的有趣信息。

当然,我知道我必须写点东西才能做到这一点。Perl是我的选择-也许是Java。只要是免费的,我就不在乎什么语言(或者免费试用,以确保它适合我的目的)。

我正在查看CAM :: Parse(使用Strawberry Perl),但是我不确定如何使用它来从文件中查找和提取表。我想我确实偏爱Perl,但实际上我想要一种性能可靠且相当容易进行字符串操作的东西。

这样的事情有什么好的方法?我在一个广场上,所以如果Java(或python等)有更好的钩子,那么现在是了解它的好时机。一般指针很好;入门代码将是首选。


问题答案:
  1. 最初的PDF格式(已有20多年的历史)从未打算用作可提取的,有意义的结构化数据的宿主。

  2. 其目的是为文档中的文本,图像和图表提供可靠的视觉表示-一种数字纸(也可以通过打印将其可靠地转换为真实纸)。仅在其开发的后期,才添加了更多功能,这些功能应有助于再次提取数据(google为Tagged PDF)。

有关从PDF抓取表格时出现的一些问题示例,请参阅本文:

为什么为文档更新美元如此困难

  1. 与我的观点“ 1”相反。上面,现在我这样说:对于一个惊人的工具系列,从PDF中提取表格数据(除非它们是扫描的页面),每个星期都会变得越来越好,
    所以:去寻找Tabula。如果有任何工具可以满足您的需求,那么Tabula可能是最适合的工作!

更新资料
我最近创建了一个ASCiinema截屏视频,演示了如何使用Tabula命令行界面从PDF中将大表提取为CSV:

(单击上面的图像查看它的运行。如果它运行太快而无法阅读所有文本,请使用“暂停”按钮(||-symbol)。)



 类似资料:
  • 我有(相同的)数据保存为GIF图像文件和PDF文件,我想将其解析为超文本标记语言或XML。这些数据实际上是我大学自助餐厅的菜单。这意味着每周必须解析一个新版本的文件!一般来说,这些文件包含一些页眉和页脚文本,以及中间充满其他数据的表格。我读过一些关于stackoverflow的帖子,我也开始尝试将表格数据解析为超文本语言标记/XML: PDF格式 PDFBox||iText(Java) 谷歌文档导

  • 我有关于从PDF文件中提取数据的查询。我有一个PDF文件,其中包含多个可用的数据表。我想从需要的表内容中提取数据。 如何从 PDF 文件中提取表格数据? 如何使用 iText/PDFBox 执行此操作?

  • 问题陈述: 我有一个PDF的结构像表格,但行是不可见的。请参阅下面的示例: 上图是我的表格在其中一个PDF页面中的样子。 我的研究 > 如何使用Python从PDF中提取表作为文本?--看了这道题,看了所有的答案。没有帮助 tabula:尝试了tabula API,但它只是提取标题而不是文本,可能是因为没有行。 我可以将整个pdf转换成文本,然后尝试用regex或数据操作来提取它。但这可能是非常乏

  • 问题内容: 我正在尝试使用提取此 PDF文件中包含的文本。 我正在使用PyPDF2模块,并具有以下脚本: 运行代码时,得到以下输出,该输出与PDF文档中包含的输出不同: 如何提取PDF文档中的文本? 问题答案: 要从PDF提取文本,请使用以下代码

  • 我有一个列表。pdf,ppt,pptx,xls,xlsx,doc和。docx文件,现在想在这些文件中查找电子邮件地址。我的问题是如何从这些文件中智能地提取计划文本。目前我正在使用Apache POI,我对每种类型的文件都有一个单一的方法,是否有一个更短、更优雅的位置来做这件事?也许还可以处理。ODT、.ODP、.ODS文件?如何从。pdf,ppt,pptx,xls,xlsx,doc和.docx文件

  • 问题内容: 我需要使用iText从pdf文件中提取文本。 问题是:一些pdf文件包含2列,当我提取文本时,我得到一个文本文件,其中的列作为结果合并(即同一行中两列的文本) 这是代码: 你能帮我完成这个任务吗? 问题答案: 我是iText文本提取子系统的作者。您需要做的是开发自己的文本提取策略(如果您看一下如何实现的话,就会发现您可以提供可插拔的策略)。 您将如何确定列的开始和停止位置完全取决于您-