我正在尝试实现一篇学术论文中描述的算法,我有该论文的 PDF 格式。该算法包含一个包含 256 个条目的表,我想将其复制到我的实现中。但是,我似乎无法将该表复制为我可以操作的文本。我只能将其复制为图像。
我怎样才能轻松地提取表格而不输入内容?
答案1
我认为这将其输出为 XML。
如果我们上网,我们可以在一堆 PDF 文件中查找。曾经有一部令人惊叹的五百万像素数码相机的技术细节、曾经有一份企业过去两年收入的统计数据,甚至有一本亚瑟·柯南·道尔爵士的精彩犯罪小说都保存在 PDF 文件中。这种文件格式的广泛使用将焦点集中在如何重复使用此类文件中的数据的问题上。在这方面已经做了很多事情。例如,有几种工具可以将 PDF 文件转换为其他格式。
我的工作重点只是从 PDF 文件中提取表格信息。我搜索了从 PDF 文件中提取基本信息的工具。我发现了一个名为 pdf2html 的工具,它也能返回 XML 格式的数据。为了访问这个 XML 输出,我使用了 JDOM 存档。
我开发了几种用于表格检测和分解的启发式方法。这些启发式方法在清晰的表格(不跨越列或行)上效果很好,在复杂的表格(跨越行或列)上效果也相当好。
答案2
这PDF 格式的诞生(20多年前)从未打算成为可提取、有意义的结构化数据的主机。
它的最初目的是成为文档中文本、图像和图表的可靠视觉表示——一种数字纸(也可以通过打印可靠地转移到真实纸张上)。直到后来才添加了更多功能,其中包括一些有助于再次提取数据的功能(谷歌搜索带标签的 PDF)。
有关从 PDF 中抓取数据表时遇到的一些问题的示例,请参阅此文章:
与我上面的观点‘1’相矛盾现在我要说的是:对于用于从 PDF(除非它们是扫描的页面)中提取表格数据的令人惊叹的工具系列,它们每周都变得越来越好,请参阅以下链接:
所以:去寻找 Tabula。如果任何工具都能满足您的需求,那么目前(提出这个问题 4 年后)Tabula 可能是最适合这项工作的工具之一!
附言:Tabula 是一款免费的开源软件,用 Ruby 编写。
答案3
您的问题可能是原作者将其作为图像粘贴到 pdf 中。如果是这种情况(您可以通过查看文档中的其他文本是否会复制为文本来发现),您唯一的选择可能是手动复制(希望您可以盲打)或使用扫描仪附带的 OCR 软件。