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 爬虫学习笔记之单线程爬虫
Sep 21 Python
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
python实现朴素贝叶斯算法
Nov 19 Python
python调用matlab的m自定义函数方法
Feb 18 Python
python判断所输入的任意一个正整数是否为素数的两种方法
Jun 27 Python
python实现两个经纬度点之间的距离和方位角的方法
Jul 05 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
浅谈Python线程的同步互斥与死锁
Mar 22 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
Sep 09 Python
python manim实现排序算法动画示例
Aug 14 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
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
JavaScript Event学习第六章 事件的访问
2010/02/07 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
jquery中change()用法实例分析
2015/02/06 Javascript
JavaScript函数详解
2015/02/27 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
Vue自定义指令详解
2017/07/28 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
Python将xml和xsl转换为html的方法
2015/03/10 Python
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
python实现在windows下操作word的方法
2015/04/28 Python
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
python Kmeans算法原理深入解析
2019/08/23 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
2020/03/07 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
美国玩具公司:U.S.Toy
2018/05/19 全球购物
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
Java语言程序设计测试题判断题部分
2013/01/06 面试题
缓刑人员的思想汇报
2014/01/11 职场文书
拓展训练激励口号
2014/06/17 职场文书
班级文化标语
2014/06/23 职场文书
教师业务学习材料
2014/12/16 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书