python提取pdf⽂件中的信息python 读取pdf⽂件有3个扩展包 pdfminer3k(python2中为pdfminer)、fitz和pymupdf
1.pdfminer3k
读取并获得pdf⽂档中的信息:
from pdfminer.pdfparser import PDFParser,PDFDocument
from pdfminer.pdfinterp import PDFResourceManager,PDFPageInterpreter,PDFTextExtractionNotAllowed
verter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal,LAParams,LTTextLineHorizontal,LTFigure,LTRect,LTLine,LTCurve
# ⽂件对象
pd_file = open("d.pdf", "rb")
# pdf⽂件解析对象
parser = PDFParser(pd_file)
# print(parser)
# pdf⽂档对象
document = PDFDocument()
parser.set_document(document)
document.set_parser(parser)
# 初始化⽂档密码
document.initialize()
if document.is_extractable:
print(True)
else:
raise PDFTextExtractionNotAllowed
# 存储⽂档资源
src = PDFResourceManager()
# 设备对象
device = PDFPageAggregator(src,laparams=LAParams())
# 解释器对象
inter = PDFPageInterpreter(src,device)
pages = _pages()
for page in pages:
#ts)
inter.process_page(page)
layout = _result()
for x in layout:
if isinstance(x, LTTextBoxHorizontal):
print(_text()))
#t = dir(x)
#print(t)
#print(type(x))
以上代码属于搬运⼯ (~⾃带笑哭表情~~~)
上述代码中各个对象的作⽤:
python怎么读取文件中的数据⽂件解析对象(PDFParser):从⽂件中提取数据
⽂档对象(PDFDocument): 保存提取到的数据
资源对象(PDFResourceManager):保存共享内容
设备对象(PDFDevice):处理资源对象为我们所需要的格式
解释器对象(PDFPageInterpreter): 处理页⾯内容
layout : 包含⽂档的全部内容对象主要包含:
LTPage:页⾯对象
LTTextBox:代表⼀个区域内的⽂字信息,包含多个LTTextLine,get_text()⽅法可以获得⽂本内容。 LTTextLine:代表⼀⾏⽂字信息,包含多个LTChar,get_text()⽅法可以获得⽂本内容。
LTChar:代表⼀个字符信息,get_text()⽅法可以获得⽂本内容。
LTAnno:代表⽂本中的字符的Unicode字符串。
LTFigure:代表PDF的表单对象,可以包含图形或图⽚。
LTImage:代表⼀个图⽚对象。
LTLine : 代表⼀条直线。
LTRect:代表⼀个矩形区域。
LTCurve:代表⼀条曲线。
tip:LTTextBox、LTTextLine可以分别和Horizontal、Vertical 组合表⽰⽔平⽅向和垂直⽅向
⽂档对象(Document)常⽤属性和⽅法:
<_outlines(): 获取⽂档的⽬录数据
doc.is_extractable(): 判断⽂档是否⽀持转⽂字
<_pages(): 获取所有页⾯对象
doc.initialize():初始化⽂档密码
doc.set_parser():绑定⽂档解析对像
内容对象(LTTextBox、LTTextLine、等等)常⽤属性和⽅法:
LTImage:
<_rawdata(): 获取图⽚数据
2. fitz 包:
3.pymupdf包:
操作pdf⽂件,可以实现创建pdf⽂件、修改pdf⽂件等等。。功能强⼤。(以后补充...)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论