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中处理时间之clock()方法的使用
May 22 Python
深入理解 Python 中的多线程 新手必看
Nov 20 Python
windows及linux环境下永久修改pip镜像源的方法
Nov 28 Python
Python字符编码与函数的基本使用方法
Sep 30 Python
pycharm下查看python的变量类型和变量内容的方法
Jun 26 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
Dec 26 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
Mar 06 Python
新手常见Python错误及异常解决处理方案
Jun 18 Python
Python基于正则表达式实现计算器功能
Jul 13 Python
python 如何引入协程和原理分析
Nov 30 Python
python Django框架快速入门教程(后台管理)
Jul 21 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
实用函数9
2007/11/08 PHP
php 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
PHP中的self关键字详解
2019/06/23 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
2020/05/02 PHP
比较详细的关于javascript 解析json的代码
2009/12/16 Javascript
javascript document.compatMode兼容性
2010/02/23 Javascript
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
2013/09/29 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
解决Python 遍历字典时删除元素报异常的问题
2016/09/11 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
Python 可视化神器Plotly详解
2020/12/26 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
优衣库澳大利亚官网:UNIQLO澳大利亚
2017/01/18 全球购物
后勤主管工作职责
2013/12/07 职场文书
有关环保的标语
2014/06/13 职场文书
委托证明书
2014/09/17 职场文书
大学生赌博检讨书
2014/09/22 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
2014年校长工作总结
2014/12/11 职场文书
出生公证书
2015/01/23 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
如何用python清洗文件中的数据
2021/06/18 Python