zoukankan      html  css  js  c++  java
  • 用PDFMiner从PDF中提取文本文字

    1、下载并安装PDFMiner

      从https://pypi.python.org/pypi/pdfminer/下载PDFMineer

    wget https://pypi.python.org/packages/57/4f/e1df0437858188d2d36466a7bb89aa024d252bd0b7e3ba90cbc567c6c0b8/pdfminer-20140328.tar.gz#md5=dfe3eb1b7b7017ab514aad6751a7c2ea

      加压并安装

    tar -zxvf pdfminer-20140328.tar.gz
    cd pdfminer-20140328/
    make cmap  #防止中文乱码,否则处理中文会出现一大堆(CID:xxx)
    sudo python setup.py install

    2、提取文本文字

    from cStringIO import StringIO
    from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
    from pdfminer.converter import TextConverter
    from pdfminer.layout import LAParams
    from pdfminer.pdfpage import PDFPage
    import sys
    import string
    
    def convert_pdf_2_text(path):
        rsrcmgr = PDFResourceManager()
        retstr = StringIO()
        device = TextConverter(rsrcmgr, retstr, codec='utf-8', laparams=LAParams())
        interpreter = PDFPageInterpreter(rsrcmgr, device)
        with open(path, 'rb') as fp:
            for page in PDFPage.get_pages(fp, set()):
                interpreter.process_page(page)
            text = retstr.getvalue()
        device.close()
        retstr.close()
        return text
    
    text = convert_pdf_2_text(sys.argv[1])
    open('real?.txt','wb').write(text)

    3、测试结果

    【1】http://www.unixuser.org/~euske/python/pdfminer/#source

    【2】https://www.zhihu.com/question/31586273

  • 相关阅读:
    js手写弹框和按钮显示
    Java类加载机制、双亲委派、Java类加载过程
    Java集合:HashMap必知必会
    查看oracle是否锁表
    消息队列Rabbit MQ 学习第一篇
    数据库blob图片文件,多图片打包下载
    HttpDebug下载
    将博客搬至CSDN
    android事件拦截处理机制详解
    回调函数
  • 原文地址:https://www.cnblogs.com/vincent-vg/p/6827031.html
Copyright © 2011-2022 走看看