使用Python互转pdf文档和word文档

Source

1 前言

一日,欲将手头上的一份pdf文档转换成word文档。先试着用XX办公软件试了下,微信扫码登录后,在PDF转换界面,选中文档,点击“开始转换”,弹出提示对话框:免费的只给转换5页文档,可我这文档要350页,全部转换需开通会员,有点懵逼了。于是有了下文的pdf和word文档互转的python代码。

在介绍代码之前,先看一下pdf和word转换的效果截图:

2 环境准备

环境:Win10+VS Code1.74.1+Python3.10

在使用Python里的pdf和word互转功能之前,需要先安装pdf2docx和docx2pdf模块。以下是安装命令及截图。

安装pdf2docx

pip install pdf2docx

 安装docx2pdf

pip install docx2pdf

3 python代码

转换代码很简洁,且易懂,这就是python之所以受欢迎的一个原因了吧。

pdf转docx

将以下代码编辑到文件pdf2word.py中。注意,如果代码中文件路径写绝对路径,建议使用正斜杠“/”,不用转义字符,因而简洁。

from docx2pdf import convert

#将word文档转换成pdf文档
convert("D:/test/test.doc", "D:/test/输出文档1.pdf")

 docx转pdf

将以下代码编辑到文件word2pdf.py中。注意,下边代码中文件路径,使用了相对路径,而不是绝对路径,即在转换过程中,要确保“输出文档.pdf”与代码word2pdf.py在同一个路径下。

from pdf2docx import Converter

#初始化pdf文档对象
cv = Converter('输出文档.pdf')

#将pdf稳定对象转换成word文档对象
cv.convert('输出文档.docx', start=0, end=None)

#关闭资源
cv.close()

下边是笔者电脑上的测试代码、转换文档所在目录截图:

4 转换过程

以下分别是pdf转word、word转pdf的过程截图:

下边是转换350页pdf文档的过程截图,耗时838.27s,还是挺花费时间的,胜在免费。

5 注意问题

1、经测试,在将pdf转换成word文档时,输出文档后缀可以是.doc或.docx;但是将word转换成pdf文档时,源文件后缀只能是.docx,不能是.doc,否则会报错,如下截图:

2、本测试用例代码,仅支持单个文档文件转换,不支持批量文件转换。

3、Python代码所在路径尽量别用中文,否则可能转换过程会报错。比如笔者将代码文件放在D:/test目录下。但是word或pdf文件名称,可用中文。

6 参考

6行代码!用Python将PDF转为word - 腾讯云开发者社区-腾讯云

使用python将word文档转换为PDF文档 - 腾讯云开发者社区-腾讯云