一文带你实现从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转worda = 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 Converterdef 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+'转换成功')
结果展示