当前位置: 首页 > 科技观察

动手操作-20行Python代码教你把PDF文件批量转成Word格式(报交报会)

时间:2023-03-15 08:29:59 科技观察

在日常工作或学习中,你经常会遇到这样的无奈:“小任,你把这个PDF文件发给我代码,“倒霉,2M的PDF,12点还写不完!很多时候你在学习的时候发现很多文档都是PDF格式的,但是PDF格式不利于学习和使用,所以你需要将PDF转成Word文件,但是可能你已经从网上下载了很多软件,但是只能转换前五页(比如WPS等),还是要收费的,请问有免费的转换软件吗?所以,菜鸟分析为您带来了一种免费、简单、快速的方法。它将教你如何用Python批量处理PDF文件,获取你想要的内容,并保存为word形式。在实现PDF转Word功能之前,我们需要一个python编写运行环境,同时安装相关的依赖包。对于python环境,我们推荐使用PyCharm。在本地电脑环境下,anaconda提供了非常方便的安装部署。PDF转Word功能需要的依赖包如下:PDFParser(文档分析器)、PDFDocument(文档对象)、PDFResourceManager(资源管理器)、PDFPageInterpreter(解释器)、PDFPageAggregator(聚合器)、LAParams(参数分析器)一、Pre-准备说明:菜鸟分析在Windows7下使用python***3.6版本1.安装好pdfminer3k模块,安装anaconda后,可以直接通过pip安装2.如果安装不成功,可以试试下面的方法先下载pdfminer3k:https://pypi.python.org/pypi/pdfminer3k;然后安装pdfminer,将下载的pdfminer3k解压到D:或其他合适的盘符,通过win+r打开运行窗口,输入cmd;输入D:切换到D盘,cdpdfminer3k(pdf解压文件夹),输入setup.pyinstall安装软件。最后显示Finished,表示成功。2.代码运行导入相关包frompdfminer.pdfparserimportPDFParser,PDFDocumentfrompdfminer.pdfinterpimportPDFResourceManager,PDFPageInterpreterfrompdfminer.layoutimportLAParamsfrompdfminer.converterimportPDFPageAggregator总体思路是:构造文档对象,解析文档对象,提取需要的内容构造文档对象构造解释器2.导入PDF文件解析后将待解析文件和执行代码放在同一目录下,如图:test.pdf内容3.具体代码如下:frompdfminer.pdfparserimportPDFParser,PDFDocumentfrompdfminer.pdfinterpimportPDFResourceManager,PDFPageInterpreterfrompdfminer.layoutimportLAParamsfrompdfminer.converterimportPDFPageAggregatorfrompdfminer。pdfinterpimportPDFTextExtractionNotAlloweddefparse():#rb以二进制读取模式打开本地pdf文件fn=open('test.pdf','rb')#创建pdf文档分析器parser=PDFParser()#创建PDF文档doc=PDFDocument()#Connect分析器和文档对象parser.set_document()doc.set_parser()#提供初始化密码doc.initialize("lianxipython")#如果没有密码,创建一个空字符串doc.initialize("")#检测是否是文档提供txt转换,如果没有,忽略LAParams()#创建一个聚合器,用来读取文档的对象device=PDFPageAggregator(resource,laparams=laparams)#创建一个解释器,对文档进行编码,解释成Python可以识别的格式interpreter=PDFPageInterpreter(resource,device)#循环遍历列表,一次处理一页的内容#doc.get_pages()获取页面列表forpageindoc.get_pages():#使用解释器的process_page()方法解析读取单个页面的个数interpreter.process_page(page)#使用聚合get_result()方法获取内容layout=device.get_result()#这里的layout是一个LTPage对象,存储了这个page解析出来的各种对象foroutinlayout:#判断是否包含get_text()方法获取我们想要的文本\n')if__name__=='__main__':parse()最终得到test.txt结果如下:End:Thisistheendoftheintr引出Python批量PDF转Word操作。本文仅作为展示代码编写过程的库。具体技术需要有兴趣的朋友,和我一起讨论专题研究,互相学习,共同进步