利用python将pdf输出为txt的实例讲解


Posted in Python onApril 23, 2018

一个礼拜前一个同学问我这个事情,由于之前在参加华为的比赛,所以赛后看了一下,据说需要用到pdfminer这个包。于是安装了一下,安装过程很简单:

sudo pip install pdfminer;

中间也没有任何的报错。至于如何调用,本人也没有很好的研究过pdfminer这个库,于是开始了百度……

官方文档:http://www.unixuser.org/~euske/python/pdfminer/index.html

完全使用python编写。 (适用于2.4或更新版本)

解析,分析,并转换成PDF文档。

PDF-1.7规范的支持。 (几乎)

中日韩语言和垂直书写脚本支持。

各种字体类型(Type1、TrueType、Type3,和CID)的支持。

基本加密(RC4)的支持。

PDF与HTML转换。

纲要(TOC)的提取。

标签内容提取。

通过分组文本块重建原始的布局。

一些基本的类

PDFParser:从一个文件中获取数据

PDFDocument:保存获取的数据,和PDFParser是相互关联的

PDFPageInterpreter处理页面内容

PDFDevice将其翻译成你需要的格式

PDFResourceManager用于存储共享资源,如字体或图像。

利用python将pdf输出为txt的实例讲解

简单的实现

读取test.pdf输出为output.txt:

# -*- coding: utf-8 -*-  
from pdfminer.pdfparser import PDFParser 
from pdfminer.pdfdocument import PDFDocument 
from pdfminer.pdfpage import PDFPage 
from pdfminer.pdfpage import PDFTextExtractionNotAllowed 
from pdfminer.pdfinterp import PDFResourceManager 
from pdfminer.pdfinterp import PDFPageInterpreter 
from pdfminer.pdfdevice import PDFDevice 
from pdfminer.layout import * 
from pdfminer.converter import PDFPageAggregator 
import os 
fp = open('test.pdf', 'rb') 
#来创建一个pdf文档分析器 
parser = PDFParser(fp) 
#创建一个PDF文档对象存储文档结构 
document = PDFDocument(parser) 
# 检查文件是否允许文本提取 
if not document.is_extractable: 
 raise PDFTextExtractionNotAllowed 
else: 
 # 创建一个PDF资源管理器对象来存储共赏资源 
 rsrcmgr=PDFResourceManager() 
 # 设定参数进行分析 
 laparams=LAParams() 
 # 创建一个PDF设备对象 
 # device=PDFDevice(rsrcmgr) 
 device=PDFPageAggregator(rsrcmgr,laparams=laparams) 
 # 创建一个PDF解释器对象 
 interpreter=PDFPageInterpreter(rsrcmgr,device) 
 # 处理每一页 
 for page in PDFPage.create_pages(document): 
  interpreter.process_page(page) 
  # 接受该页面的LTPage对象 
  layout=device.get_result() 
  for x in layout: 
   if(isinstance(x,LTTextBoxHorizontal)): 
    with open('output.txt','a') as f: 
     f.write(x.get_text().encode('utf-8')+'\n')

以上这篇利用python将pdf输出为txt的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python发送伪造的arp请求
Jan 09 Python
python实现简单ftp客户端的方法
Jun 28 Python
利用python生成一个导出数据库的bat脚本文件的方法
Dec 30 Python
Python运算符重载详解及实例代码
Mar 07 Python
Python中pillow知识点学习
Apr 30 Python
Python OpenCV 使用滑动条来调整函数参数的方法
Jul 08 Python
Python画图高斯分布的示例
Jul 10 Python
Django如何将URL映射到视图
Jul 29 Python
Django用户认证系统 User对象解析
Aug 02 Python
python 字典的打印实现
Sep 26 Python
浅谈TensorFlow中读取图像数据的三种方式
Jun 30 Python
FP-growth算法发现频繁项集——发现频繁项集
Jun 24 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 #Python
Python 3.6 读取并操作文件内容的实例
Apr 23 #Python
Python 循环语句之 while,for语句详解
Apr 23 #Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 #Python
python批量替换多文件字符串问题详解
Apr 22 #Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
Apr 22 #Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 #Python
You might like
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
使用Python写一个贪吃蛇游戏实例代码
2017/08/21 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
tensorflow的计算图总结
2020/01/12 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
美国温暖商店:The Warming Store
2018/12/15 全球购物
存储过程和sql语句的优缺点
2014/07/02 面试题
建筑工程技术应届生求职信
2013/11/17 职场文书
工厂仓管员岗位职责
2014/01/01 职场文书
《二泉映月》教学反思
2014/04/15 职场文书
大学生实习证明范文(5篇)
2014/09/18 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
布达拉宫的导游词
2015/02/02 职场文书
小学六年级毕业感言
2015/07/30 职场文书
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android