python基于pdfminer库提取pdf文字代码实例
安装pdfminer库
windows下安装pdfminer3k
pipinstallpdfminer3k
Liunx下安装pdfminer
pipinstallpdfminer
代码
frompdfminer.pdfparserimportPDFParser,PDFDocument frompdfminer.converterimportPDFPageAggregator frompdfminer.layoutimportLAParams,LTTextBoxHorizontal frompdfminer.pdfinterpimportPDFTextExtractionNotAllowed,PDFResourceManager,PDFPageInterpreter defpdfParse(path): """ pdf文字提取 :parampath:文件路径 :return:每页结果列表 """ 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) #每页文字内容 results=[] #循环遍历列表,每次处理一个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: ifisinstance(x,LTTextBoxHorizontal): results.append(x.get_text()) returnresults
该库是根据迭代pdf每一页进行文字提取,也可以识别判断页码的功能
另外还有一个pypdf2库也可以识别但是感觉不如这个准确
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。