Python2.7读取PDF文件的方法示例


Posted in Python onJuly 13, 2017

本文实例讲述了Python2.7读取PDF文件的方法。分享给大家供大家参考,具体如下:

这篇文章示例代码采用的Python版本是2.7,需要下载的插件是PDFMiner,下载地址是http://www.unixuser.org/~euske/python/pdfminer/,地址里有安装方法,我就不再细说了,需要说明的是Python2只能使用PDFMiner,Python3不能使用,Python3可以使用PDFMiner3K,下载地址为https://pypi.python.org/pypi/pdfminer3k/。两种插件使用上大体相似,这里我以Python2为例,使用PDFMiner插件。代码如下:

#!/usr/bin/env python
#-*- 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 LAParams
from pdfminer.converter import PDFPageAggregator
#获取文档对象,你把algorithm.pdf换成你自己的文件名即可。
fp=open("algorithm.pdf","rb")
#创建一个与文档相关联的解释器
parser=PDFParser(fp)
#PDF文档对象
doc=PDFDocument(parser)
#链接解释器和文档对象
parser.set_document(doc)
#doc.set_paeser(parser)
#初始化文档
#doc.initialize("")
#创建PDF资源管理器
resource=PDFResourceManager()
#参数分析器
laparam=LAParams()
#创建一个聚合器
device=PDFPageAggregator(resource,laparams=laparam)
#创建PDF页面解释器
interpreter=PDFPageInterpreter(resource,device)
#使用文档对象得到页面集合
for page in PDFPage.create_pages(doc):
  #使用页面解释器来读取
  interpreter.process_page(page)
  #使用聚合器来获取内容
  layout=device.get_result()
  for out in layout:
    if hasattr(out, "get_text"):
      print out.get_text()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
centos下更新Python版本的步骤
Feb 12 Python
python之PyMongo使用总结
May 26 Python
浅谈python中的正则表达式(re模块)
Oct 17 Python
python logging日志模块以及多进程日志详解
Apr 18 Python
django中模板的html自动转意方法
May 27 Python
python读取LMDB中图像的方法
Jul 02 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
python如何创建TCP服务端和客户端
Aug 26 Python
python实现基于朴素贝叶斯的垃圾分类算法
Jul 09 Python
pytorch forward两个参数实例
Jan 17 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 Python
python调用有道智云API实现文件批量翻译
Oct 10 Python
Python使用win32com实现的模拟浏览器功能示例
Jul 13 #Python
python3 模拟登录v2ex实例讲解
Jul 13 #Python
python计算auc指标实例
Jul 13 #Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
Jul 12 #Python
Python实现统计代码行的方法分析
Jul 12 #Python
Python实现导出数据生成excel报表的方法示例
Jul 12 #Python
python 数据的清理行为实例详解
Jul 12 #Python
You might like
php htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
详解vue-cli 构建Vue项目遇到的坑
2017/08/30 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
用Electron写个带界面的nodejs爬虫的实现方法
2019/01/29 NodeJs
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
小程序中的箭头函数的具体使用
2020/06/19 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
node.js通过url读取文件
2020/10/16 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
python matplotlib坐标轴设置的方法
2017/12/05 Python
python利用rsa库做公钥解密的方法教程
2017/12/10 Python
python+Splinter实现12306抢票功能
2018/09/25 Python
浅析Python四种数据类型
2018/09/26 Python
基于python3抓取pinpoint应用信息入库
2020/01/08 Python
详解Python中import机制
2020/09/11 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
带你认识HTML5中的WebSocket
2015/05/22 HTML / CSS
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
墨西哥购物网站:Elektra
2020/01/21 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
师范类求职信
2014/06/21 职场文书
2015年工会工作总结
2015/03/30 职场文书