Tabula:把PDF里的表格取出来
Tabula:把PDF里的表格取出来
Tabula 在 GitHub 上拿到了 7.4K Star。
处理过 PDF 数据的人都经历过这种场景:一份报告里嵌了一张表,你想把数据弄进 Excel。复制粘贴过去,格式全乱了,一行数据拆成三行,列对不齐,数字和文字搅在一起。每次都得手动重新整理,花的时间比分析数据本身还长。
Tabula 就是解决这个问题的。打开浏览器,上传 PDF,框选表格区域,点导出,CSV 出来了。
1、 这玩意儿是干嘛的
把 PDF 里的表格拿出来,变成 CSV。
Tabula 是一个带 Web 界面的桌面工具。它在本地启动一个服务,浏览器里上传 PDF、选中表格、提取数据。整个过程,你的 PDF 和提取出的数据不经过任何远程服务器,全在本地完成。

它只处理文本型 PDF。判断方法很简单:用 PDF 阅读器打开,能用鼠标选中表格里的文字,Tabula 就能处理。扫描件不行,那是 OCR 的活儿。
2、 为什么不用手抄
做过数据分析、报表整理的人都懂,PDF 取数这个环节永远在拖后腿。甲方发过来的季度报告、政府公开的统计数据、学术论文的附录,数据锁在 PDF 表格里。
一个表格手动敲一敲还行。十个就要命了。一百个呢?
Tabula 把这个操作的耗时压缩到了拖框加一次点击。而且支持批量:一个 PDF 里有多张表,一次性框选多个区域,分别导出。

3、 安装和使用
各平台都有打包好的版本。Windows 用户下载 tabula-win.zip,解压双击 tabula.exe,浏览器自动打开操作界面。Mac 用户下载 tabula-mac.zip,打开 App 就行。Linux 用户通过 snap 安装:sudo snap install tabula,或者下载 JAR 包用 java -jar tabula.jar 运行。
Docker 用户拉一个 JRE 镜像,挂载 tabula.jar,映射 8080 端口,docker compose up -d 就起来了。
前提是要有 Java 运行环境,Java 7 及以上。
操作流程:浏览器访问 localhost:8080,上传 PDF,Tabula 自动检测表格区域。你也可以手动拖框调整选区。选好后点 Export,下载 CSV 文件。完事。
4、 进阶:用代码批量处理
网页界面适合偶尔用,程序员更想把它嵌到自己的流程里。
Tabula 的核心提取逻辑在 tabula-java 这个库里,纯 Java 实现,提供命令行工具:
java -jar tabula-java.jar -o output.csv input.pdf
支持指定页码、指定区域坐标、不同的提取模式。几十个 PDF 文件,写个 shell 脚本循环跑就行。
社区为它写了多门语言的绑定:Python 的 tabula-py、R 的 tabulizer、Node.js 的 tabula-js。不离开自己习惯的编程环境,也能调用 Tabula 的提取能力。
5、 现状和适合谁用
Tabula 是志愿者维护的项目,曾获得 Knight 基金会和 Shuttleworth 基金会的资助。目前原始作者没有时间活跃开发,终端应用近期不太可能有大版本更新,但底层库 tabula-java 偶尔还有修复发布。
它适合的场景:经常需要从 PDF 报告中提取表格数据的分析师、记者、研究人员。也适合需要批量处理 PDF 表格、把数据灌进自己管线的开发者。
不是一个新东西,而是一个把一件事做了十年的工具。
也适合需要批量处理 PDF 表格、把数据灌进自己管线的开发者。
不是一个新东西,而是一个把一件事做了十年的工具。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)