pdf的读取【python】

说明:以下内容学习自:http://www.imooc.com/

1、使用pdfminer3k,如果直接pip安装非常卡导致失败,所以去https://pypi.python.org/pypi/pdfminer3k/ 用迅雷下载后,在对应路径,用python setup.py install 来安装。

2、在下载文件的docs文件夹下有一个index.html,里面有 PDFMiner API相关的说明,操作流程如下2个图:

3、示范代码:

__author__ = 'Administrator'
# python 3.5.2

from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
from pdfminer.layout import LAParams
from pdfminer.converter import PDFPageAggregator

# 获取文档对象,以二进制读的模式。
fp = open('naacl06-shinyama.pdf', 'rb')

# 创建一个与文档关联的parser
parser = PDFParser(fp)

# pdf文档的对象
doc = PDFDocument()

# 连接解释器和文档对象
parser.set_document(doc)
doc.set_parser(parser)

# 初始化文档
doc.initialize('')

# 创建pdf资源管理器
resource = PDFResourceManager()

# 创建参数分析器
laparam = LAParams()

# 创建一个聚合器
device = PDFPageAggregator(resource, laparams=laparam)

# 创建一个页面解释器
interpreter = PDFPageInterpreter(resource, device)

#使用文档对象从页面读取内容
for page in doc.get_pages():
    # 使用页面解释器来读取
    interpreter.process_page(page)

    # 使用聚合器来获取内容
    layout = device.get_result()

    for out in layout:
        if hasattr(out, 'get_text'):
            print(out.get_text())

4、结果展示,读取了示范pdf的几乎所有文字,不包括一些图,表格公式等复杂的:

7、总结:如果需要写论文什么的,感觉还是挺有用的,作者提到了还有一些更高级的功能,不过没有展开,有点可惜,另外pdfminer3k的最后更新时间2012/07/20,貌似作者停止更新了。而一个朋友反馈:pdf解析器和修改器现在最好的应该是一个JAVA库,还有一个就是Adobe和foxit提供的API。