利用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实现rest请求api示例
Apr 22 Python
使用Python来编写HTTP服务器的超级指南
Feb 18 Python
flask session组件的使用示例
Dec 25 Python
Python判断telnet通不通的实例
Jan 26 Python
详解python的四种内置数据结构
Mar 19 Python
详解python解压压缩包的五种方法
Jul 05 Python
在python中用url_for构造URL的方法
Jul 25 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
Aug 02 Python
python匿名函数用法实例分析
Aug 03 Python
使用python绘制二维图形示例
Nov 22 Python
python函数中将变量名转换成字符串实例
May 11 Python
如何卸载python插件
Jul 08 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桌面中心(四) 数据显示
2007/03/11 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
2012/12/28 PHP
PHP基础知识介绍
2013/09/17 PHP
php之readdir函数用法实例
2014/11/13 PHP
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
python协程用法实例分析
2015/06/04 Python
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
Python构造自定义方法来美化字典结构输出的示例
2016/06/16 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
python实现自动发送邮件
2018/06/20 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
一套.net面试题及答案
2016/11/02 面试题
大四学生毕业自荐信
2013/11/07 职场文书
清洁工岗位职责
2014/01/29 职场文书
医药营销个人求职信
2014/04/12 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
交心谈心活动总结
2015/05/11 职场文书
转学证明范本
2015/06/19 职场文书
推普标语口号大全
2015/12/26 职场文书
Netty分布式客户端处理接入事件handle源码解析
2022/03/25 Java/Android