V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
woshichuanqilz
V2EX  ›  Python

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

  •  
  •   woshichuanqilz · 2018-04-23 16:48:46 +08:00 · 8795 次点击
    这是一个创建于 2405 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    20180423164856

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

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

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

    http://7xpvdr.com1.z0.glb.clouddn.com/95885595-9dc8-4753-9ab1-e023daa27bef0423171652.png
    xupefei
        5
    xupefei  
       2018-04-23 17:18:54 +08:00
    用 Word 打开这个 PDF 就行了。
    akira
        6
    akira  
       2018-04-23 17:22:21 +08:00
    @xupefei word 打开 pdf 一般就是一张大图
    ynyounuo
        7
    ynyounuo  
       2018-04-23 17:26:50 +08:00
    如果是 doc 之类的富文本格式转换的 PDF 可以试试在 Acrobat 里写 JavaScript 提取一些信息
    zbl430
        8
    zbl430  
       2018-04-23 17:34:15 +08:00
    pdftotext 之后自己在做处理, 直接识别 table,难
    summerwar
        9
    summerwar  
       2018-04-23 17:40:57 +08:00
    手工敲吧,比找工具快多了 这种表格基本上无解
    nowheretogogo
        10
    nowheretogogo  
       2018-04-23 17:48:45 +08:00
    目前能够直接读取 Pdf 里面表格的应该就只有 Fillable Pdf 了。
    里面可以添加 fields 并通过 field.Value 这种方式获取其中的值。
    timtang2010
        11
    timtang2010  
       2018-04-23 17:48:55 +08:00
    https://www.freepdfconvert.com/zh-hans/pdf-excel 这个网站不错,前天做报价用了很方便转换了。只不过没有付钱有页数转换的限制。
    zhaoFinger
        12
    zhaoFinger  
       2018-04-23 18:26:02 +08:00
    ocr 吧
    maxco292
        13
    maxco292  
       2018-04-23 18:35:46 +08:00 via Android
    角点检测
    evagreenworking
        14
    evagreenworking  
       2018-04-23 18:57:02 +08:00 via Android
    白描 了解一下
    laqow
        15
    laqow  
       2018-04-23 20:06:16 +08:00 via Android
    不介意的话 acrobat 直接转 doc,或者用 reader 一纵列一纵列的选择复制
    rosu
        16
    rosu  
       2018-04-23 20:09:14 +08:00 via Android
    截图 OCR 呗
    kxxoling
        17
    kxxoling  
       2018-04-24 13:45:49 +08:00
    zix
        18
    zix  
       2018-05-08 18:47:21 +08:00   ❤️ 1
    @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
        19
    tolecen  
       2018-07-15 22:05:41 +08:00
    白描 现在表格识别有了质的提升,可以尝试一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   986 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:52 · PVG 03:52 · LAX 11:52 · JFK 14:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.