python pdfminer读取pdf表格,Python 读pdf
便携文档格式的格式不是规范的,很多情况下没有逻辑结构,不能自适应页面大小的调整PDFMiner是通过尝试猜测便携文档格式的布局来重建其结构,有时候效果并不理想。
导入导入库导入系统导入时间导入库。重新加载(系统)时间1=时间。time()导入操作系统。pdf miner中的路径。pdf解析器从pdf miner导入pdf解析器、pdf文档。pdf interp导入PDFResourceManager,从pdfminer.converter导入PDFPageAggregatorfrom从pdfminer.layout导入LTTextBoxHorizontal,LAParamsfrom从pdfminer.pdfinterp导入PDFTextExtractionNotAllowed def parse(pdf _ path,txt_path): 解析便携文档格式文本,并保存到文本文件(文本文件)文件中 fp=open(text_path, Rb )# pdf 1=urlopen( http://www .腾讯。com/2016 03 21。pdf )#用文件对象创建一个便携文档格式文档分析器parser=PDFParser(fp) #创建一个便携文档格式文档doc=PDFDocument() #连接分析器,与文档对象解析器。set _ document(doc)doc。set _ parser(解析器)#提供初始化密码,如果没有密码,就创建一个空的字符串doc.initialize() #检测文档是否提供文本文件(文本文件)转换,不提供就忽略如果不是文档是可提取的:引发PDFTextExtractionNotAllowed else:#创建PDF,资源管理器,来共享资源rsrcmgr=PDFResourceManager() #创建一个便携文档格式设备对象la params=la params()device=pdf页面聚合器(rsrcmgr,laparams=laparams) #创建一个便携文档格式解释其对象interpreter=PDFPageInterpreter(rsrcmgr,device) #循环遍历列表,每次处理一个页,面,张,版内容# doc.get_pages()获取页,面,张,版列表对于doc.get_pages()中的页面:口译员。process _ page(第页)#接受该页面的LTPage对象layout=device.get_result() #这里布局是一个LTPage对象里面存放着这个页,面,张,版解析出的各种对象# 一般包括LTTextBox,LTFigure,LTImage,LTTextBoxHorizontal等等# 想要获取文本就获得对象的文本属性,对于布局中的x:if(is instance(x,lt textbox horizontal)):with open(txt _ path, a )as f:results=x . get _ text()print(results)f . write(results \ n )if _ _ name _ _= _ _ main _ _ :pdf _ path= ./test.pdf txt_path= ./test.txt parse(pdf_path,txt _ path)time 2=time。时间()打印(总共消耗时间为:,时间2-时间1)上述代码只能解析正常的便携文档格式内容,在实际应用场景中,很多便携文档格式文档可能是加密的,如何处理解密的便携文档格式文件,也是我们需要得到的技能。
pydf2这个库能够实现对便携文档格式文件进行加密和解密。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。