python基于pdfminer库提取pdf文字代码实例
Python  /  管理员 发布于 7年前   326
安装pdfminer 库
windows 下安装pdfminer3k
pip install pdfminer3k
Liunx 下安装pdfminer
pip install pdfminer
代码
from pdfminer.pdfparser import PDFParser, PDFDocumentfrom pdfminer.converter import PDFPageAggregatorfrom pdfminer.layout import LAParams, LTTextBoxHorizontalfrom pdfminer.pdfinterp import PDFTextExtractionNotAllowed, PDFResourceManager, PDFPageInterpreterdef pdfParse(path):"""pdf文字提取:param path:文件路径:return: 每页结果列表"""fp = open(path, 'rb') # 以二进制读模式打开# 用文件对象来创建一个pdf文档分析器praser = PDFParser(fp)# 创建一个PDF文档doc = PDFDocument()# 连接分析器 与文档对象praser.set_document(doc)doc.set_parser(praser)# 提供初始化密码# 如果没有密码 就创建一个空的字符串doc.initialize()# 检测文档是否提供txt转换,不提供就忽略if not doc.is_extractable: raise PDFTextExtractionNotAllowedelse: # 创建PDf 资源管理器 来管理共享资源 rsrcmgr = PDFResourceManager() # 创建一个PDF设备对象 laparams = LAParams() device = PDFPageAggregator(rsrcmgr, laparams=laparams) # 创建一个PDF解释器对象 interpreter = PDFPageInterpreter(rsrcmgr, device) #每页文字内容 results = [] # 循环遍历列表,每次处理一个page的内容 for page in doc.get_pages(): # doc.get_pages() 获取page列表 interpreter.process_page(page) # 接受该页面的LTPage对象 layout = device.get_result() # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要获取文本就获得对象的text属性, for x in layout: if isinstance(x, LTTextBoxHorizontal): results.append(x.get_text()) return results
该库是根据 迭代pdf每一页 进行文字提取, 也可以识别判断页码的功能
另外还有一个pypdf2 库也可以识别但是感觉不如这个准确
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号