说明:以下内容学习自: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。