欢迎来到Introzo百科
Introzo百科
当前位置:网站首页 > 技术 > Python代码教你批量转换PDF到Word

Python代码教你批量转换PDF到Word

日期:2023-10-01 09:11

-->

很多时候在学习的时候,你发现很多文档都是PDF格式的,但是PDF格式不利于学习和使用,所以你需要将PDF转换为Word文件,但是也许你从网上下载了很多软件互联网,但您只能转换前五个页面。 (如WPS等),或者如果是收费的,有没有免费的转换软件?

所以,我们为您带来了一个免费、简单、快速的方法,教您如何使用Python批量处理PDF格式文件,得到您想要的内容,并以word形式保存。

在实现PDF转Word功能之前,我们需要一个python编写和运行环境,并安装相关依赖包。对于Python环境,我们推荐使用PyCharm。

PDF转Word功能所需的依赖包如下:

    • PDFParser(文档解析器)

    • PDFDocument(文档对象)

    • PDFResourceManager

    • PDFPageInterpreter(解释器)

    • PDFPageAggregator

    • LAParams(参数分析器)

步骤:

安装pdfminer3k模块

代码:

#!/usr/bin/env python
# 版本 = 3.5.2
# __auth__ = '无名小恶魔'
从 pdfminer.pdfparser 导入 PDFParser,PDFDocument
从 pdfminer.pdfinterp 导入 PDFResourceManager、PDFPageInterpreter
从 pdfminer.layout 导入 LAParams
从 pdfminer.converter 导入 PDFPageAggregator
从 pdfminer.pdfinterp 导入 PDFTextExtractionNotAllowed
从 docx 导入文档 文档 = 文档() def parse():
# rb 以二进制阅读方式打开本地pdf文件
fn = open('Django-log配置.md.pdf','rb')
#创建一个pdf文档分析器
解析器 = PDFParser(fn)
#创建PDF文档
doc = PDF文档()
# 将分析器连接到文档对象
parser.set_document(doc)
doc.set_parser(解析器) # 提供初始化密码 doc.initialize("lianxipython")
# 如果没有密码,则创建一个空字符串
doc.initialize("")
# 检查文档是否提供txt转换。如果没有请忽略它
如果不是 www.introzo.com_extractable:
引发 PDFTextExtractionNotAllowed 其他:
#创建PDF浏览器
资源 = PDFResourceManager()
#创建PDF参数分析器
laparams = LAParams()
#创建一个聚合器,一个用于读取文档的对象
设备 = PDFPageAggregator(资源,laparams=laparams)
#创建一个解释器,对文档进行编码,并将其解释为Python可以识别的格式
解释器 = PDFPageInterpreter(资源,设备)
# 循环列表,每次处理一页内容
#doc.get_pages() 获取页面列表
对于 doc.get_pages() 中的页面:
# 使用解释器的process_page()方法解析并读取单个页面的数量
terpreter.process_page(页面)
# 使用聚合器 get_result() 方法获取内容
布局 = device.get_result()
# 这里的布局是一个LTPage对象,里面存储了本页面解析的各种对象
对于 out in 布局:
# 判断是否包含get_text()方法,获取我们想要的文本
if hasattr(out,"get_text"):
# print(out.get_text(), type(out.get_text()))
content = out.get_text().replace(u'\xa0', u' ') # 将 '\xa0' 替换为 u' ' 空格,这个 \xa0 就是 &nbps 空格
# with open('test.txt','a') as f:
# f.write(out.get_text().replace(u'\xa0', u' ')+'\n')
document.add_paragraph(
content, style='ListBullet' #添加段落,style为无序列表类型
)
www.introzo.com('demo1.docx') # 保存此文档 if __name__ == '__main__':
解析()

  

-->

关灯