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备份目录及目录下的全部内容的实现方法
Jun 12 Python
python魔法方法-自定义序列详解
Jul 21 Python
Python SVM(支持向量机)实现方法完整示例
Jun 19 Python
对pycharm 修改程序运行所需内存详解
Dec 03 Python
基于python实现高速视频传输程序
May 05 Python
解决python 文本过滤和清理问题
Aug 28 Python
Python使用贪婪算法解决问题
Oct 22 Python
使用tensorflow显示pb模型的所有网络结点方式
Jan 23 Python
Python reduce函数作用及实例解析
May 08 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
Django用户认证系统如何实现自定义
Nov 12 Python
python入门学习关于for else的特殊特性讲解
Nov 20 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遍历数组的几种方法
2012/03/22 PHP
php切割页面div内容的实现代码分享
2012/07/31 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
javascript中创建对象的三种常用方法
2010/12/30 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
Node.js API详解之 assert模块用法实例分析
2020/05/26 Javascript
Python中type的构造函数参数含义说明
2015/06/21 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
python自动保存百度盘资源到百度盘中的实例代码
2019/08/26 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
渗透攻击的测试步骤
2014/06/07 面试题
中药学专业毕业生推荐信
2014/07/10 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
用Python将库打包发布到pypi
2021/04/13 Python
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers