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搭建简易服务器分析与实现
Dec 15 Python
python利用hook技术破解https的实例代码
Mar 25 Python
Pyramid Mako模板引入helper对象的步骤方法
Nov 27 Python
python快速查找算法应用实例
Sep 26 Python
介绍Python中几个常用的类方法
Apr 08 Python
Django 日志配置按日期滚动的方法
Jan 31 Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 Python
wxPython窗体拆分布局基础组件
Nov 19 Python
Python pip配置国内源的方法
Feb 14 Python
基于Python测试程序是否有错误
May 16 Python
python 实现图像快速替换某种颜色
Jun 04 Python
Python 绘制可视化折线图
Jul 22 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
php错误日志简单配置方法
2016/07/11 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
2012/04/14 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
jquery实现图片随机排列的方法
2015/05/04 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
2016/01/14 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
简单的js表格操作
2016/09/24 Javascript
jQuery表格的维护和删除操作
2017/02/03 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
Javascript实现单选框效果
2020/12/09 Javascript
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
python 阶乘累加和的实例
2019/02/01 Python
Pytorch之parameters的使用
2019/12/31 Python
python实现用户名密码校验
2020/03/18 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
Java中compareTo和compare的区别
2016/04/12 面试题
军训自我鉴定100字
2014/02/13 职场文书
阿甘正传观后感
2015/06/01 职场文书
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技