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

yipeiwu_com6年前Python基础

本文实例讲述了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文件与目录操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

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

相关文章

Python实现的快速排序算法详解

本文实例讲述了Python实现的快速排序算法。分享给大家供大家参考,具体如下: 快速排序基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有...

python命令行工具Click快速掌握

前言 写 Python 的经常要写一些命令行工具,虽然标准库提供有命令行解析工具 Argparse,但是写起来非常麻烦,我很少会使用它。命令行工具中用起来最爽的就是 Click,它是 F...

Python简单基础小程序的实例代码

1 九九乘法表 for i in range(9):#从0循环到8 i += 1#等价于 i = i+1 for j in range(i):#从0循环到i j +...

用Python制作简单的钢琴程序的教程

用Python制作简单的钢琴程序的教程

录一段音频,把它的音高改变50次并把每一个新的音频匹配到键盘的一个键位,你就能把电脑变成一架钢琴! 一段音频可以被编码为一组数值的数组(或者列表),像这样: 我们可以在数组中每隔一秒...

Python中用于转换字母为小写的lower()方法使用简介

 lower()方法返回所有基于大小写的字符被转换为小写字符串的一个副本。 语法 以下是lower()方法的语法: str.lower() 参数  &...