利用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模拟登陆类
Mar 29 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
HTML中使用python屏蔽一些基本功能的方法
Jul 07 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
Python中的单继承与多继承实例分析
May 10 Python
Python 获取中文字拼音首个字母的方法
Nov 28 Python
详解Python安装tesserocr遇到的各种问题及解决办法
Mar 07 Python
Django Rest framework频率原理与限制
Jul 26 Python
使用Python快乐学数学Github万星神器Manim简介
Aug 07 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 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
深入PHP5中的魔术方法详解
2013/06/17 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
Javascript - HTML的request类
2006/07/15 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
node.js操作mysql(增删改查)
2015/07/24 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
浅析为什么a="abc" 不等于 a=new String("abc")
2017/10/25 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
angular多语言配置详解
2019/05/16 Javascript
Python实现GUI学生信息管理系统
2020/04/05 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
python装饰器的特性原理详解
2019/12/25 Python
如何把python项目部署到linux服务器
2020/08/26 Python
彪马英国官网:PUMA英国
2019/02/11 全球购物
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
老同学聚会感言
2014/02/23 职场文书
小学班主任培训方案
2014/06/04 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python
详解Laravel框架的依赖注入功能
2021/05/27 PHP
AJAX实现省市县三级联动效果
2021/10/16 Javascript
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js
win sever 2022如何占用操作主机角色
2022/06/25 Servers