一文带你实现从PDF到Word文件的相互转换
01. 前期准备
模块安装
pip install pdf2docx
or使用国内镜像源进行安装(清华的镜像源)
pip install pdf2docx -i https://pypi.tuna.tsinghua.edu.cn/simple
02. 模块介绍
-
pdf2docx是一个Python模块,可以用来将PDF文件转换成Word文档。它是基于Python的pdfminer和python-docx库开发的,可以在Windows、Linux和Mac系统上运行。
-
pdf2docx模块可以直接从PDF文件中提取文本和图片,并将其转换成可编辑的Word文档。它可以处理包含复杂布局和格式的PDF文件,并保留原始的字体、颜色、大小和格式等属性。
使用pdf2docx模块非常简单,只需要安装pdf2docx库并导入相应的函数即可。下面是一个简单的示例代码:
import pdf2docx
# 将PDF文件转换成Word文档
pdf2docx.parse('test.pdf', 'test.docx')
上述代码中首先导入pdf2docx模块,然后使用parse函数将指定的PDF文件转换成相应的Word文档。
pdf2docx模块还提供了一些其他的函数和选项,可以根据需要进行配置和使用。以下是一些常用的函数和选项:
- parse:将PDF文件转换成Word文档
- parse_pages:将PDF文件中的一页转换成Word文档
- parse_images:将PDF文件中的图片提取出来
- parse_text:将PDF文件中的文本提取出来
- parse_layout:将PDF文件中的页面布局提取出来
pdf2docx模块还支持一些高级选项,如自定义字体、颜色、大小、格式等,可以根据需要进行配置和使用。
总结
pdf2docx是一个非常实用的Python模块,可以将PDF文件转换成可编辑的Word文档。它基于pdfminer和python-docx库开发,可以处理包含复杂布局和格式的PDF文件,并保留原始的字体、颜色、大小和格式等属性。使用pdf2docx模块非常简单,只需要安装pdf2docx库并导入相应的函数即可。
03. 实例操作
3.1 单个PDF转word
from pdf2docx import Converter
#pdf转word
a = Converter(r'D:\Pycharm\1.pdf') #pdf的路径
#输出的word的路径加文件名,不用自己创建,会自动创建,可将pdf路径直接复制下来,将后缀pdf改为docx就可以了。
a.convert(r'D:\Pycharm\1.docx')
a.close() #一定要有,释放内存用的
3.2 多个pdf转word
import os
from pdf2docx import Converter
def pdf_docx():
# 获取当前工作目录
file_path = r'E:\python'
# 遍历所有文件
for file in os.listdir(file_path):
# 获取文件后缀
suff_name = os.path.splitext(file)[1]
# 过滤非pdf格式文件
if suff_name != '.pdf':
continue
# 获取文件名称
file_name = os.path.splitext(file)[0]
# pdf文件名称
pdf_name = file_path + '\\' + file
# 要转换的docx文件名称
docx_name = file_path + '\\' + file_name + '.docx'
# 加载pdf文档
cv = Converter(pdf_name)
cv.convert(docx_name)
cv.close()
if __name__ == '__main__':
pdf_docx()
上述代码实现了遍历一个文件夹下的所有文件,并且将文件名后缀为“.pdf”的文件转换为“.docx的文件,即”word文件 ,该方法适合多个PDF文件的转换,从而实现批量将PDF转Word文档
实现了PDF转Word:
打开后的效果:
模块的安装(使用镜像下载真的快!!!)
pip install docx2pdf -i https://pypi.tuna.tsinghua.edu.cn/simple
3.3 单个Word转PDF(不建议使用代码,手动更快!!!)
from docx2pdf import convert
# 第一个为word路径,第二个为生成的pdf路径,不用自己创建,会自动创建,可将docx路径直接复制下来,将后缀docx改为pdf就可以了
convert("D:/Pycharm/output.docx",
"D:/Pycharm/output.pdf")
3.4 多个Word转多个PDF
from docx2pdf import convert
import os
# 文件位置
path = 'E:/python/test/'
# 定义空list,存放文件夹中的文件名
files = []
for file in os.listdir(path):
if file.endswith(".docx"):
files.append(path+file)
for file in files:
convert(file,file.split('.')[0]+'.pdf') #创建生成的pdf文件和文件名的文件名
print(file+'转换成功')
结果展示