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 23 Python
python中numpy基础学习及进行数组和矢量计算
Feb 12 Python
利用python为运维人员写一个监控脚本
Mar 25 Python
Python3 中把txt数据文件读入到矩阵中的方法
Apr 27 Python
pandas分别写入excel的不同sheet方法
Dec 11 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
Jul 06 Python
基于Django静态资源部署404的解决方法
Jul 28 Python
Python 改变数组类型为uint8的实现
Apr 09 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
May 12 Python
基于OpenCV的路面质量检测的实现
Nov 04 Python
Python实现Hash算法
Mar 18 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
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
php中smarty变量修饰用法实例分析
2015/06/11 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
2016/09/23 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
jQuery验证插件validate使用详解
2016/05/11 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
学点简单的Django之第一个Django程序的实现
2021/02/24 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
Collection和Collections的区别
2016/05/02 面试题
一些高难度的SQL面试题
2016/11/29 面试题
学徒工职责
2014/03/06 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
学校爱国卫生月活动总结
2014/06/25 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
贷款承诺书
2015/01/20 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫