python读取pdf文件需要使用pdfminer库,安装pdfminer库的命令如下:
pipinstallpdfminer
python读取pdf的文件如下:
#coding=utf-8 importsys reload(sys) sys.setdefaultencoding('utf-8') importtime time1=time.time() importos.path frompdfminer.pdfparserimportPDFParser,PDFDocument frompdfminer.pdfinterpimportPDFResourceManager,PDFPageInterpreter frompdfminer.converterimportPDFPageAggregator frompdfminer.layoutimportLTTextBoxHorizontal,LAParams frompdfminer.pdfinterpimportPDFTextExtractionNotAllowed result=[] classCPdf2TxtManager(): def__init__(self): ''''' Constructor ''' defchangePdfToText(self,filePath): file=open(path,'rb')#以二进制读模式打开 #用文件对象来创建一个pdf文档分析器 praser=PDFParser(file) #创建一个PDF文档 doc=PDFDocument() #连接分析器与文档对象 praser.set_document(doc) doc.set_parser(praser) #提供初始化密码 #如果没有密码就创建一个空的字符串 doc.initialize() #检测文档是否提供txt转换,不提供就忽略 ifnotdoc.is_extractable: raisePDFTextExtractionNotAllowed #创建PDf资源管理器来管理共享资源 rsrcmgr=PDFResourceManager() #创建一个PDF设备对象 laparams=LAParams() device=PDFPageAggregator(rsrcmgr,laparams=laparams) #创建一个PDF解释器对象 interpreter=PDFPageInterpreter(rsrcmgr,device) pdfStr='' #循环遍历列表,每次处理一个page的内容 forpageindoc.get_pages():#doc.get_pages()获取page列表 interpreter.process_page(page) #接受该页面的LTPage对象 layout=device.get_result() forxinlayout: ifhasattr(x,"get_text"): #printx.get_text() result.append(x.get_text()) fileNames=os.path.splitext(filePath) withopen(fileNames[0]+'.txt','wb')asf: results=x.get_text() print(results) f.write(results+'\n') if__name__=='__main__': ''''' 解析pdf文本,保存到txt文件中 ''' path=u'C:/data3.pdf' pdf2TxtManager=CPdf2TxtManager() pdf2TxtManager.changePdfToText(path) #printresult[0] time2=time.time() printu'ok,解析pdf结束!' printu'总共耗时:'+str(time2-time1)+'s'
pdf文件如下:
python读取结果如下:
原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容