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获取文件后缀名及批量更新目录下文件后缀名的方法
Nov 11 Python
Python列出一个文件夹及其子目录的所有文件
Jun 30 Python
win10系统中安装scrapy-1.1
Jul 03 Python
老生常谈Python startswith()函数与endswith函数
Sep 08 Python
python距离测量的方法
Mar 06 Python
python验证码识别教程之利用投影法、连通域法分割图片
Jun 04 Python
Pycharm运行加载文本出现错误的解决方法
Jun 27 Python
如何在Windows中安装多个python解释器
Jun 16 Python
Python 忽略文件名编码的方法
Aug 01 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
Feb 01 Python
opencv实现图像平移效果
Mar 24 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分页函数代码(简单实用型)
2010/12/02 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
基于jquery的3d效果实现代码
2011/03/23 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
国贸专业求职信
2014/06/28 职场文书
租房协议书
2014/09/12 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
中学教师个人总结
2015/02/10 职场文书
慰问信范文
2015/02/14 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
我收到了德劲DE1107
2022/04/05 无线电