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计数排序和基数排序算法实例
Apr 25 Python
跟老齐学Python之print详解
Sep 28 Python
使用Python简单的实现树莓派的WEB控制
Feb 18 Python
python中logging包的使用总结
Feb 28 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 Python
python统计中文字符数量的两种方法
Jan 31 Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 Python
postman传递当前时间戳实例详解
Sep 14 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
Jun 15 Python
用python对excel查重
Dec 07 Python
基于tensorflow __init__、build 和call的使用小结
Feb 26 Python
给numpy.array增加维度的超简单方法
Jun 02 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/01/02 PHP
用php或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
php中filter_input函数用法分析
2014/11/15 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
javascript 贪吃蛇实现代码
2008/11/22 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
详解webpack打包vue时提取css
2017/05/26 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
python简单读取大文件的方法
2016/07/01 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
python自动化测试无法启动谷歌浏览器问题
2019/10/10 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
HTML5如何实现元素拖拽
2016/03/11 HTML / CSS
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
C/C++程序员常见面试题一
2012/12/08 面试题
志愿者活动总结范文
2014/04/26 职场文书
代领毕业证委托书
2014/08/02 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python