网上找到的例子都不能用了,由于最新版的pdfminer做了比较多的更新。遇到了很多坑,找了很久的资料才知道问题在哪里。

下面是最新源码

# coding=gbk
from pdfminer.converter import LTChar, TextConverter
from pdfminer.layout import LAParams
# from pdfminer.pdfparser import PDFDocument, PDFParser      # Not compatible with current version of PDFMiner
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox

def read():
    path = r"d:\table.pdf"
    fp = open(path, 'rb') # 以二进制读模式打开
    #用文件对象来创建一个pdf文档分析器
    parser = PDFParser(fp)
    # 创建一个PDF文档
    #doc = PDFDocument()
    doc = PDFDocument(parser,'')                        # Inserted ahead of 'parser.set_document(doc)' to avoid error
    # 连接分析器 与文档对象
    parser.set_document(doc)
    #doc.set_parser(praser)
    
    # 提供初始化密码
    # 如果没有密码 就创建一个空的字符串
    #doc.initialize()

# 检测文档是否提供txt转换,不提供就忽略
    if not doc.is_extractable:
        raise PDFTextExtractionNotAllowed
    else:
        # 创建PDf 资源管理器 来管理共享资源
        rsrcmgr = PDFResourceManager()
        # 创建一个PDF设备对象
        laparams = LAParams()
        device = PDFPageAggregator(rsrcmgr, laparams=laparams)
        # 创建一个PDF解释器对象
        interpreter = PDFPageInterpreter(rsrcmgr, device)

# 循环遍历列表,每次处理一个page的内容
        #for page in doc.get_pages():
        #for i, page in PDFPage.get_pages(doc):
        for i, page in enumerate(PDFPage.create_pages(doc)): 
            interpreter.process_page(page)    
            print("START PAGE %d\n" % i)
            if page is not None:
                interpreter.process_page(page)
            print("END PAGE %d\n" % i)
            # 接受该页面的LTPage对象
            layout = device.get_result()
            print(layout)
            # 这里layout是一个LTPage对象,里面存放着这个 page 解析出的各种对象
            # 包括 LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等                            
            for x in layout:
                if isinstance(x, LTTextBox):
                    print(x.get_text().strip())
                    
if __name__ == '__main__':
    read()

【zzt原创】pdf内容提取,2021年9月最新可用pdfminer例子相关推荐

  1. 剑与远征服务器无限换,剑与远征兑换码2021年5月最新 剑与远征兑换码永久有效整理...

    剑与远征兑换码2021年5月最新整合是小编为大家带来的目前能用的所有兑换码整理,你可以通过在游戏中的兑换来获得大量的游戏资源,更好的帮助你进行游戏,每个码都是小编亲测的哦,快去享受游戏吧! 剑与远征五 ...

  2. 珍贵!分享!全国各省市最全乡镇、街道行政区划边界shp矢量数据+wgs84坐标系+2021年7月最新获取+2018年更新数据

    珍贵!全网独一份!全国各省市最全乡镇.街道行政区划边界shp矢量数据+wgs84坐标系+2021年7月最新获取+2018年更新数据 该数据为2021年7月获取,数据为2018年版本数据,官方未更新 温 ...

  3. Python 调用谷歌翻译(2021年3月测试可用)

    前言 把之前的用来谷歌翻译的Python文件整理了下, 用来处理翻译下i18n.js所需要的字典, 直接调用即可.2021年3月测试可用 (¦3[▓▓] 2021年9月17日 测试失效 请查看: Py ...

  4. 2021年11月最新搜狗验证码识别,6位全对正确率高达96%

    训练数据准备 标记数据是最花费时间的事情.最开始手工标记验证码1万条,训练后正确率在50%左右.然后写写代码使用这种低正确率的去自动标记.使用搜狗自动验证,来实现自动标记.逐渐积累数据量,后期只需要人 ...

  5. 命运2服务器维护2021,《命运2》3.0.2版本更新内容详情 2021年1月20日更新公告

    战斗收起战斗活动奖励综合 命运2于2021年1月20日进行了更新,此次更新都有哪些内容呢?下面就给大家带来<命运2>3.0.2版本更新内容详情,以供玩家参考. 战斗 技能 修复了突围者法则 ...

  6. php-live-chat-pro中文汉化版源码教程-【2021修复版】最新可用的PHP在线客服系统phplivechat无限坐席简单搭建支持APP

    系统要求 要使应用程序正常运行,需要 PHP 5 或更高版本以及 MySQL 5.2 或更高版本的数据库.支持 IE9 及更新版本的浏览器. PHP在线客服系统源码最新可用的PHPlivechat无限 ...

  7. 【Google Play】APK 扩展包 ( 2021年09月 最新处理方案 | 文件准备 | 拷贝文件至内置存储 | 解压及使用扩展文件 )

    文章目录 前言 一.文件准备 二.拷贝文件至内置存储 三.解压及使用扩展文件 四.博客资源 前言 在上一篇博客 [Google Play]APK 扩展包 ( 2021年09月02日最新处理方案 | 内 ...

  8. 2021年9月最新的保姆级计算机视觉学习路线

    因工作需要,年初花了4个月左右时间学习了机器学习.神经网络相关的知识,工作日每天大概学习4-6个小时,周末每天大概10个小时,工作中的需求应对也得心应手了. 想快速入门的话,从自己的经验看,可以先不看 ...

  9. 2021年8月最新sci-hub可用网址,高速稳定

    Sci-Hub由哈萨克软件开发暨神经技术研究员亚历珊卓·艾尔巴金(Alexandra Elbakyan),在2011年9月5日正式上线.其中艾尔巴金过去在哈佛大学从事研究时,由于无法支付所需要的数百篇 ...

最新文章

  1. Ubuntu 13.04 安装 OpenCV 及试用
  2. centos7 安装 mysql rpm_CentOS7使用rpm安装MySQL8
  3. java import class_@class vs. #import
  4. Numpy-矩阵的分割
  5. Zuul使用正则表达式指定路由规则
  6. SAP Spartacus 的 git flow 和发布流程
  7. 【ArcGIS遇上Python】Python使用栅格数据
  8. go调用python3_在python3中使用google的protobuf以及gRPC-Go语言中文社区
  9. 曲线相似度衡量——曲线距离计算Fréchet distance详解与python计算
  10. ai面试的优缺点_面试也能开“外挂”?领英AI做了什么
  11. yum用法及程序编译安装
  12. 对于长时间装载的ASP.NET页面如何在客户端浏览器中显示进度?
  13. 1、C语言从入门到精通一一概述
  14. win7变成xp风格了怎么改回_win7桌面怎么改成xp风格
  15. 高中计算机整人代码完整,整人代码 VBS整人代码大全
  16. 【pyecharts库与pandas库】利用pyecharts库根据表格中的GDP数据绘制2021年中国各省GDP热力图和GDP较低的五个省的人均GDP与人口的柱状图
  17. 恶意代码分析实战——反汇编
  18. SAM简单介绍(百度翻译)
  19. 使用ActiveX实现的Web自定义查询-万能查询
  20. 域名是否被微信、qq拦截?怎么查询

热门文章

  1. Windows 2008R2 +MDT2013+WDS(1)
  2. 大型演唱会无线wifi网络覆盖解决方案
  3. 【YMGJ】很激动的一刻:将时间显示出来
  4. 艾乐云后台伪装404恶搞页,后台恶搞伪装单页
  5. VC字符串与时间戳相互转换
  6. oracle10g无监听配置文件,Oracle 10g学习笔记(七) tnsnames.ora 监听配置文件详解
  7. 研发侧利器!k3d+k3s,轻松管理本地k3s集群!
  8. 浅谈如何上好小学信息技术课
  9. “第四届中国汽车网络信息安全峰会2019” (ACSS2019) 即将召开
  10. 画春天的景色计算机教案,中班美术教案《画春天》