欢迎来到Introzo百科
Introzo百科
Python代码教你批量转换PDF到Word
-->
很多时候在学习的时候,你发现很多文档都是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__':
解析()
# 版本 = 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__':
解析()
-->
相关文章
- 10-05 什么是共享单车黑名单制度?共享单车黑名单制度
- 10-05 如何开启Android手机的便携式热点功能
- 10-05 360n5s发布会直播地址360n5s新品发布会视
- 10-05 【第200期】面试官:您能简单讲一下SpringM
- 10-05 【第411期】Docker连杀15题,你能坚持哪题
- 10-05 【第432期】面试官:您的项目中使用Redis的目
- 10-05 ZEEKR 001 FR高性能车型预热:搭载4电机
- 10-05 我国网民规模达10.79亿,互联网普及率达76.4
- 10-05 《2023年标准地图》正式上线
- 10-05 stm32内存包括哪些类型(stm32内存分为几个
- 10-05 stm32采集+数据处理程序(stm32采集+数据
- 10-05 stm32仿真图的引脚如何连接(stm32仿真器接
- 10-05 Zabbix警告问题
- 10-05 Zabbix集成云预警(瑞祥云)实现电话短信预警
- 10-05 利用企业微信实现预警(shell+python)
- 10-05 高通CEO爆料苹果自研5G芯片明年准备就绪
- 10-05 全球智能手机市场被扰乱:iPhone与Androi
- 10-05 苹果最新巧克力广告:Apple Card激活到付款
- 10-05 苹果推出iOS 15.6正式版固件:我们来看看iO
- 10-05 iPadOS 16 允许应用程序使用 M1 设备存
- 最近发表