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 ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
Python实现基于HTTP文件传输实例
Nov 08 Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 Python
Python调用C# Com dll组件实战教程
Oct 12 Python
python批量修改文件夹及其子文件夹下的文件内容
Mar 15 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
Apr 05 Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 Python
详解程序意外中断自动重启shell脚本(以Python为例)
Jul 26 Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 Python
pyecharts动态轨迹图的实现示例
Apr 17 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
python中delattr删除对象方法的代码分析
Dec 15 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
利用php获取服务器时间的实现代码
2013/06/07 PHP
PHP获取当前url的具体方法全面解析
2013/11/26 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP chop()函数讲解
2019/02/11 PHP
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
2009/12/28 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
2013/02/01 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
详解JavaScript的变量和数据类型
2015/11/27 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
python pdb调试方法分享
2014/01/21 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
python如何实现数据的线性拟合
2019/07/19 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
运动会通讯稿100字
2014/01/31 职场文书
暑期社会实践感言
2014/02/25 职场文书
中国梦口号
2014/06/13 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
python编写函数注意事项总结
2021/03/29 Python
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python