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 返回汉字的汉语拼音
Feb 27 Python
python 实现插入排序算法
Jun 05 Python
python实现划词翻译
Apr 23 Python
Python线程的两种编程方式
Apr 14 Python
深入解析Python中的WSGI接口
May 11 Python
python3反转字符串的3种方法(小结)
Nov 07 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
Feb 23 Python
python爬虫搭配起Bilibili唧唧的流程分析
Dec 01 Python
用 Django 开发一个 Python Web API的方法步骤
Dec 03 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
Python 制作自动化翻译工具
Apr 25 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/10/18 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
php实现统计网站在线人数的方法
2015/05/12 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
2019/10/17 Javascript
Python常用算法学习基础教程
2017/04/13 Python
Python实现的快速排序算法详解
2017/08/01 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
Hotels.com南非:酒店预订
2017/11/02 全球购物
拾金不昧表扬稿
2015/01/16 职场文书
店长岗位职责
2015/02/11 职场文书
少年雷锋观后感
2015/06/10 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
2016年区委书记抓基层党建工作公开承诺书
2016/03/25 职场文书
2019毕业论文致谢词
2019/06/24 职场文书
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python