我有一个 PDF 文件。
它包含表格格式的数据。我想使用逗号作为列分隔符将数据提取到逗号分隔的文本文件中。
有什么建议么?
标准 PDF 不提供有关它们在页面上绘制的语义的任何提示:语法提供的唯一区别是矢量元素(线条、填充...)、图像和文本之间的区别。
通过解析 PDF 源代码以编程方式识别任何字符是否是表格的一部分或行的一部分,或者只是在其他空白区域内的孤独的单个字符都不容易。
有关为什么PDF 文件格式不应该被认为适合托管可提取的结构化数据的背景,请参阅这篇文章:
为什么为文档更新美元如此困难(ProPublica-Website)
说了上面的话,现在让我补充一下:
对于一个令人惊叹的开源工具系列,它每周都在从 PDF 中提取表格数据(除非它们是扫描页面)变得越来越好——这与我在介绍性段落中所说的相矛盾!- 查看TabulaPDF。请参阅以下链接:
Tabula 是用 Ruby 编写的。
这是一个 ASCIinema 截屏视频(您也可以借助命令行工具在 Linux/MacOSX/Unix 终端本地下载asciinema
和重播),主演tabula-extractor
: