python基于pdfminer库提取pdf文字代码实例


Posted in Python onAugust 15, 2019

安装pdfminer 库

windows 下安装pdfminer3k

pip install pdfminer3k

Liunx 下安装pdfminer

pip install pdfminer

代码

from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBoxHorizontal
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed, PDFResourceManager, PDFPageInterpreter
def pdfParse(path):
"""
pdf文字提取
:param path:文件路径
:return: 每页结果列表
"""
fp = open(path, 'rb') # 以二进制读模式打开
# 用文件对象来创建一个pdf文档分析器
praser = PDFParser(fp)
# 创建一个PDF文档
doc = PDFDocument()
# 连接分析器 与文档对象
praser.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)
 #每页文字内容
 results = []
 # 循环遍历列表,每次处理一个page的内容
 for page in doc.get_pages(): # doc.get_pages() 获取page列表
  interpreter.process_page(page)
  # 接受该页面的LTPage对象
  layout = device.get_result()
  # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要获取文本就获得对象的text属性,
  for x in layout:
   if isinstance(x, LTTextBoxHorizontal):
    results.append(x.get_text())
 return results

该库是根据 迭代pdf每一页 进行文字提取, 也可以识别判断页码的功能

另外还有一个pypdf2 库也可以识别但是感觉不如这个准确

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中用于计算对数的log()方法
May 15 Python
python自动zip压缩目录的方法
Jun 28 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
全面了解python中的类,对象,方法,属性
Sep 11 Python
Python_LDA实现方法详解
Oct 25 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
Django压缩静态文件的实现方法详析
Aug 26 Python
10 分钟快速入门 Python3的教程
Jan 29 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 Python
怎么快速自学python
Jun 22 Python
浅谈Python中的正则表达式
Jun 28 Python
python中if和elif的区别介绍
Nov 07 Python
python模拟键盘输入 切换键盘布局过程解析
Aug 15 #Python
django项目登录中使用图片验证码的实现方法
Aug 15 #Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
Aug 15 #Python
解析python的局部变量和全局变量
Aug 15 #Python
python实现的自动发送消息功能详解
Aug 15 #Python
python调用支付宝支付接口流程
Aug 15 #Python
Python使用字典实现的简单记事本功能示例
Aug 15 #Python
You might like
收集的php编写大型网站问题集
2007/03/06 PHP
PHP 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
2017/06/11 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
10种JavaScript最常见的错误(小结)
2019/06/21 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
Python中异常重试的解决方案详解
2017/05/05 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
办公室驾驶员岗位职责
2013/11/15 职场文书
编辑硕士自荐信范文
2013/11/27 职场文书
秋季运动会广播稿
2014/02/22 职场文书
股权转让意向书
2014/04/01 职场文书
百日安全生产活动总结
2014/07/05 职场文书
小学教师岗位职责
2015/04/02 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书