利用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中DJANGO简单测试实例
May 11 Python
Python中使用不同编码读写txt文件详解
May 28 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
Jan 26 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
Aug 16 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
Nov 30 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
python中format函数如何使用
Jun 22 Python
python 将列表里的字典元素合并为一个字典实例
Sep 01 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
Sep 28 Python
python自动化测试三部曲之unittest框架的实现
Oct 07 Python
Python Matplotlib绘制条形图的全过程
Oct 24 Python
解析python中的jsonpath 提取器
Jan 18 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
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
JavaScript 字符串乘法
2009/08/20 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
python实现探测socket和web服务示例
2014/03/28 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
Pycharm更换python解释器的方法
2018/10/29 Python
详解python中eval函数的作用
2019/10/22 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
HEMA英国:荷兰原创设计
2018/08/28 全球购物
农林经济管理专业自荐信
2014/09/01 职场文书
委托证明书
2014/09/17 职场文书
电子商务实训报告总结
2014/11/05 职场文书
邀请书模板
2015/02/02 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
运动会广播稿50字
2015/08/19 职场文书
队名及霸气口号大全
2015/12/25 职场文书
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL