如何提取一个 pdf 文件里面, 一个表格的信息?

2018-04-23 16:48:46 +08:00
 woshichuanqilz

如何提取一个 pdf 文件里面, 一个表格的信息?

我有一个 pdf 文件, 里面的有一个类似这样的表格, 除了这个表格还有其他很多没有写在表格里面的文字,

我现在想做的就是提取这个表格里里面的信息, 这个怎么做?

我湿了 pdfminer, 里面提取的文字顺序尤其是在提取表格内容的时候, 或者在表格里面有换行的情况的时候, 变得很乱无法统一提取信息。请问有没有什么好点的方法?

8558 次点击
所在节点    Python
19 条回复
yidinghe
2018-04-23 16:52:26 +08:00
理论上 PDF 里面没有表格的概念,只有线、框、文字,所以你可能要计算坐标去判断一个字是否在表格中。
yo0o0o0
2018-04-23 17:02:25 +08:00
ocr 识别了解一下
CodingPuppy
2018-04-23 17:12:14 +08:00
最近也要做这么个需求,表格比你这还复杂~ pdfminer 看了下还没试~感觉 ocr 也有局限~ 还在搜索资料…
woshichuanqilz
2018-04-23 17:17:30 +08:00
@CodingPuppy OCR 肯定不行, pdfminer 不行, pdfminer 是无格式的, 无法探知一个字段是不是在表格里面, 我看一楼哥们的方法应该是比较有效的, 只是感觉有点难。。。

我刚看了一下 pdftable, 里面示例都用不了。。。

读文件的函数感觉都没写完。

http://7xpvdr.com1.z0.glb.clouddn.com/95885595-9dc8-4753-9ab1-e023daa27bef0423171652.png
xupefei
2018-04-23 17:18:54 +08:00
用 Word 打开这个 PDF 就行了。
akira
2018-04-23 17:22:21 +08:00
@xupefei word 打开 pdf 一般就是一张大图
ynyounuo
2018-04-23 17:26:50 +08:00
如果是 doc 之类的富文本格式转换的 PDF 可以试试在 Acrobat 里写 JavaScript 提取一些信息
zbl430
2018-04-23 17:34:15 +08:00
pdftotext 之后自己在做处理, 直接识别 table,难
summerwar
2018-04-23 17:40:57 +08:00
手工敲吧,比找工具快多了 这种表格基本上无解
nowheretogogo
2018-04-23 17:48:45 +08:00
目前能够直接读取 Pdf 里面表格的应该就只有 Fillable Pdf 了。
里面可以添加 fields 并通过 field.Value 这种方式获取其中的值。
timtang2010
2018-04-23 17:48:55 +08:00
https://www.freepdfconvert.com/zh-hans/pdf-excel 这个网站不错,前天做报价用了很方便转换了。只不过没有付钱有页数转换的限制。
zhaoFinger
2018-04-23 18:26:02 +08:00
ocr 吧
maxco292
2018-04-23 18:35:46 +08:00
角点检测
evagreenworking
2018-04-23 18:57:02 +08:00
白描 了解一下
laqow
2018-04-23 20:06:16 +08:00
不介意的话 acrobat 直接转 doc,或者用 reader 一纵列一纵列的选择复制
rosu
2018-04-23 20:09:14 +08:00
截图 OCR 呗
kxxoling
2018-04-24 13:45:49 +08:00
zix
2018-05-08 18:47:21 +08:00
@kxxoling 项目还没有开源啊……

@woshichuanqilz

用 pdfminer 是可以做的,把线识别出来,然后自己组装成表格。另外有一个叫做 tabula-py 的项目了解一下

附参考资料:

- http://www.degeneratestate.org/posts/2016/Jun/15/extracting-tabular-data-from-pdfs/

- https://github.com/chezou/tabula-py
tolecen
2018-07-15 22:05:41 +08:00
白描 现在表格识别有了质的提升,可以尝试一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/449177

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX