我有一份PDF文件。
它包含表格格式的数据。我想使用逗号作为列分隔符将数据提取到逗号分隔的文本文件中。
有什么建议吗?
答案 0 :(得分:4)
标准PDF没有提供关于它们在页面上绘制的内容的语义的任何提示:语法提供的唯一区别是向量元素(行,填充,......)之间的区别,图像和文字。
通过解析PDF源代码,任何字符是否是表的一部分或一部分行,或者只是一个孤独的单个字符在其他空白区域内是不容易通过编程方式识别的。
有关为什么 PDF文件格式永远不应被视为适合托管可提取的结构化数据 的背景信息,请参阅此文章:
Why Updating Dollars for Docs Was So Difficult (ProPublica-Website)
说完上面的内容之后我就加上这个:
对于一个惊人的开源系列工具,每周都会越来越好地从PDF中提取表格数据(除非它们是扫描页面) - 与我在我的说法中所说的相矛盾介绍段落 ! - 查看 TabulaPDF 。请参阅以下链接:
Tabula是用Ruby编写的。
这是一个ASCiinema截屏视频(您也可以 download ,并在asciinema
命令行的帮助下在Linux / MacOSX / Unix终端中重新播放工具),主演tabula-extractor
: