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
-
from pdfminer.converter
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 = document.get_pages()
-
-
for page
in pages:
-
#print(page.contents)
-
inter.process_page(page)
-
layout = device.get_result()
-
for x
in layout:
-
if isinstance(x, LTTextBoxHorizontal):
-
print(str(x.get_text()))
-
#t = dir(x)
-
#print(t)
-
#print(type(x))
以上代码属于搬运工 (~自带笑哭表情~~~)
上述代码中各个对象的作用:
文件解析对象(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)常用属性和方法:
doc.get_outlines(): 获取文档的目录数据
doc.is_extractable(): 判断文档是否支持转文字
doc.get_pages(): 获取所有页面对象
doc.initialize():初始化文档密码
doc.set_parser():绑定文档解析对像
内容对象(LTTextBox、LTTextLine、LTImage...等等)常用属性和方法:
LTImage:
LTImage.get_rawdata(): 获取图片数据
2. fitz 包:
参考:https://blog.csdn.net/qq_15969343/article/details/81673302
3.pymupdf包:
操作pdf文件,可以实现创建pdf文件、修改pdf文件等等。。功能强大。(以后补充...)