利用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创建线程示例
May 06 Python
python每隔N秒运行指定函数的方法
Mar 16 Python
简单介绍Python中的readline()方法的使用
May 24 Python
Python文件去除注释的方法
May 25 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
python实现学生信息管理系统
Apr 05 Python
Python实现的计算马氏距离算法示例
Apr 03 Python
Python3爬虫使用Fidder实现APP爬取示例
Nov 27 Python
python读写csv文件并增加行列的实例代码
Aug 01 Python
python-numpy-指数分布实例详解
Dec 07 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
python如何调用php文件中的函数详解
Dec 29 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
解析php中如何调用用户自定义函数
2013/08/06 PHP
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
一个javascript图片阅览组件
2010/11/09 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
Python生成随机MAC地址
2015/03/10 Python
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Python EOL while scanning string literal问题解决方法
2020/09/18 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
工作自我评价分享
2013/12/01 职场文书
贺卡寄语大全
2014/04/11 职场文书
林肯就职演讲稿
2014/05/19 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
团队会宣传标语
2014/10/09 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript
JavaScript中isPrototypeOf函数
2021/11/07 Javascript