怎么在Python 3.6 中利用pdfminer对pdf文件进行解析

怎么在Python 3.6 中利用pdfminer对pdf文件进行解析?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

一、安装pdfminer模块

安装anaconda后,直接可以通过pip安装

pipinstallpdfminer3k

怎么在Python 3.6 中利用pdfminer对pdf文件进行解析

如上图所示安装成功。

二、在IDE中进行编码

#!/usr/bin/envpython
#encoding:utf-8

"""
@author:wugang
@software:PyCharm
@file:prase_pdf.py
@time:2017/3/3000311:16
"""
importsys
importimportlib
importlib.reload(sys)

frompdfminer.pdfparserimportPDFParser,PDFDocument
frompdfminer.pdfinterpimportPDFResourceManager,PDFPageInterpreter
frompdfminer.converterimportPDFPageAggregator
frompdfminer.layoutimportLTTextBoxHorizontal,LAParams
frompdfminer.pdfinterpimportPDFTextExtractionNotAllowed

'''
解析pdf文本,保存到txt文件中
'''
path=r'../../data/pdf/阿里巴巴Java开发规范手册.pdf'
defparse():
fp=open(path,'rb')#以二进制读模式打开
#用文件对象来创建一个pdf文档分析器
praser=PDFParser(fp)
#创建一个PDF文档
doc=PDFDocument()
#连接分析器与文档对象
praser.set_document(doc)
doc.set_parser(praser)

#提供初始化密码
#如果没有密码就创建一个空的字符串
doc.initialize()

#检测文档是否提供txt转换,不提供就忽略
ifnotdoc.is_extractable:
raisePDFTextExtractionNotAllowed
else:
#创建PDf资源管理器来管理共享资源
rsrcmgr=PDFResourceManager()
#创建一个PDF设备对象
laparams=LAParams()
device=PDFPageAggregator(rsrcmgr,laparams=laparams)
#创建一个PDF解释器对象
interpreter=PDFPageInterpreter(rsrcmgr,device)

#循环遍历列表,每次处理一个page的内容
forpageindoc.get_pages():#doc.get_pages()获取page列表
interpreter.process_page(page)
#接受该页面的LTPage对象
layout=device.get_result()
#这里layout是一个LTPage对象里面存放着这个page解析出的各种对象一般包括LTTextBox,LTFigure,LTImage,LTTextBoxHorizontal等等想要获取文本就获得对象的text属性,
forxinlayout:
if(isinstance(x,LTTextBoxHorizontal)):
withopen(r'../../data/pdf/1.txt','a')asf:
results=x.get_text()
print(results)
f.write(results+'\n')

if__name__=='__main__':
parse()

看完上述内容,你们掌握怎么在Python 3.6 中利用pdfminer对pdf文件进行解析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!

发布于 2021-03-24 01:22:55
收藏
分享
海报
0 条评论
173
上一篇:怎么在python中利用socket传输demo 下一篇:super函数如何在python项目中使用
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码