Python代码实现PDF与Word之间互转

 更新时间:2026年03月20日 09:50:34   作者:算法小狂人  
这篇文章主要介绍了如何使用Python的pdf2docx和win32com库进行PDF与DOCX之间的转换,包括单个文件和批量文件的处理,文中的示例代码讲解详细,有需要的小伙伴可以了解下

一、pdf转docx

将PDF 格式转换为Word格式要求很高,很多的转换网页需要付费、而且转换的效果不好。

在Python中,利用pdf2docx库可以很好地实现这个需求,直接使用pip安装即可。

pip install pdf2docx

坐等安装完成

该模块有一个convert()方法,可以实现将PDF格式转换为Word格式

(默认转换整个文档)完整代码如下:

from pdf2docx import Converter

cv = Converter("C:/Users/ypzhao/Desktop/毕业论文.pdf")
cv.convert("C:/Users/ypzhao/Desktop/毕业.docx", start=0, end=None)
cv.close()

(转换指定范围)完整代码如下:

from pdf2docx import Converter

cv = Converter("C:/Users/ypzhao/Desktop/毕业论文.pdf")
cv.convert("C:/Users/ypzhao/Desktop/毕业论文.docx", pages=[0,2])
cv.close()

使用 pages 参数指定要转换的页码范围。

二、docx转pdf

首先安装库

pip install pypiwin32
from win32com.client import Dispatch

old_file_path = r"C:/Users/ypzhao/Desktop/毕业论文.docx"
new_file_path = r"C:/Users/ypzhao/Desktop/毕业论文_convert.pdf"
word = Dispatch('Word.Application')
doc = word.Documents.Open(old_file_path)
doc.SaveAs(new_file_path,17)
doc.Close()
word.Quit()

转换后的效果和另存为的pdf的效果一样

首先,需要 import win32com 库中的 Dispatch 类。然后,定义变量 old_file_path 和 new_file_path 分别表示原文件路径和目标文件路径。在这里,原文件路径为 “C:/Users/ypzhao/Desktop/毕业论文.docx”,目标文件路径为 “C:/Users/ypzhao/Desktop/毕业论文_convert.pdf”。

接着,创建一个 Word.Application 对象,并打开原文件,获取 Document 对象。调用 SaveAs 方法,将文档以 PDF 格式保存到指定路径,并设置参数 17 指定文档的保存格式为 PDF。最后,关闭文档,并退出 Word 应用程序。

win32com 库可以帮助我们在 Python 程序中使用 Windows 中的 COM 应用程序,比如 Word、Excel、PowerPoint 等 Office 软件,从而实现自动化操作。在上述代码中,我们利用 win32com 库的 Dispatch 类创建了一个 Word.Application 的对象,之后打开了指定的 DOCX 文档,并通过 SaveAs 方法将其另存为 PDF 格式的文档。该过程完全不需要手动干预,实现了自动化处理,提高了效率。

三、doc转换为docx

from win32com.client import Dispatch
old_file_path = r"C:/Users/ypzhao/Desktop/毕业论文.doc"
new_file_path = r"C:/Users/ypzhao/Desktop/毕业论文_convert.docx"

word = Dispatch('Word.Application')
doc = word.Documents.Open(old_file_path)
doc.SaveAs(new_file_path,12)
doc.Close()
word.Quit()

四、xls格式转换为xlsx

from win32com.client import Dispatch
old_file_path = r"C:/Users/ypzhao/Desktop/毕业论文.xls"
new_file_path = r"C:/Users/ypzhao/Desktop/毕业论文_convert.xlsx"

excel = Dispatch('Excel.Application')
wb = excel.Workbooks.Open(old_file_path)
wb.SaveAs(new_file_path,51)
wb.Close()
excel.Quit()

五、pdf批量转换成docx

通过使用 pdf2docx 库实现了将 PDF 格式的文件批量转换为 DOCX 格式的文件。

首先,定义变量 path 和 path_convert 分别表示原文件所在目录和转换后文件存储目录。此处分别为 “C:/Users/ypzhao/Desktop/pdf/” 和 “C:/Users/ypzhao/Desktop/docx/”。

然后,使用 os 模块中的 listdir 方法遍历目录下所有文件,判断文件类型如果是 PDF,则进行转换。利用 Converter 类打开 PDF 文件,指定转换后的目标文件名为 {file_name}.docx,并调用 convert 方法将其转换为 DOCX 文件,并指定页码范围。最后,关闭 Converter 对象,转换完成。

import os
from pdf2docx import Converter

path = "C:/Users/ypzhao/Desktop/pdf/"
path_convert = "C:/Users/ypzhao/Desktop/docx/"

for i in os.listdir(path):
    file_name,file_suffix = i.split(".")
    if file_suffix == "pdf":
        cv = Converter(path+f"{i}")
        cv.convert(path_convert+f"{file_name}"+".docx", start=0, end=None)
        cv.close()
    else:
        pass

六、docx批量转成pdf

from time import sleep
import os
from win32com.client import Dispatch

path = "C:/Users/ypzhao/Desktop/docx/"
path_convert = "C:/Users/ypzhao/Desktop/pdf/"
print("-----doc开始转换为docx-----")

for i in os.listdir(path):
    file_name,file_suffix = i.split(".") 
    if file_suffix == "doc":
        word = Dispatch('Word.Application')
        doc = word.Documents.Open(path+f"{i}")
        doc.SaveAs(path+f"{file_name}.docx",FileFormat=12)
        print(i,"转换完成")
        doc.Close()
        word.Quit()
        sleep(3)

print("-----开始转换为pdf-----")
for i in os.listdir(path):
    file_name,file_suffix = i.split(".") 
    if file_suffix == "docx":
        word = Dispatch('Word.Application')
        doc = word.Documents.Open(path+f"{i}")
        doc.SaveAs(path_convert+f"{file_name}.pdf",FileFormat=17)
        print(i,"...转换完成")
        doc.Close()
        word.Quit()
        sleep(3)
    else:
        pass

这段代码的作用是将指定目录下的 Word 文档(.doc)转换为 Word 文档(.docx),然后再将其转换为 PDF 格式。

其中,代码中使用了 sleep(3) 函数来暂停程序执行,是为了避免在 Word 应用程序未完全关闭之前就打开下一个文档导致程序出错。

需要注意的是,由于在进行文档转换时可能会出现各种问题,例如格式错误、页面布局混乱等,因此建议在转换完成后手动检查一下转换后的文档是否正常。

以上就是Python代码实现PDF与Word之间互转的详细内容,更多关于Python PDF与Word互转的资料请关注脚本之家其它相关文章!

相关文章

  • 基于Django框架利用Ajax实现点赞功能实例代码

    基于Django框架利用Ajax实现点赞功能实例代码

    点赞这个功能是我们现在经常会遇到的一个功能,下面这篇文章主要给大家介绍了关于基于Django框架利用Ajax实现点赞功能的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • 基于django channel实现websocket的聊天室的方法示例

    基于django channel实现websocket的聊天室的方法示例

    这篇文章主要介绍了基于基于django channel实现websocket的聊天室的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • python散点图实例之随机漫步

    python散点图实例之随机漫步

    这篇文章主要为大家详细介绍了python散点图实例之随机漫步,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • 分享11个Python自动化操作Excel的方法

    分享11个Python自动化操作Excel的方法

    这篇文章主要给大家分享的是11个Python自动化操作Excel的方法,自动化办公,我相信很多人都有强烈的需求,今天我教大家如何利用Python自动化操作Excel,需要的朋友可以参考一下
    2022-02-02
  • Python中reset_index()函数的使用

    Python中reset_index()函数的使用

    本文主要介绍了Python中reset_index()函数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 在django项目中导出数据到excel文件并实现下载的功能

    在django项目中导出数据到excel文件并实现下载的功能

    这篇文章主要介绍了在django项目中导出数据到excel文件并实现下载的功能,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python倒排索引之查找包含某主题或单词的文件

    Python倒排索引之查找包含某主题或单词的文件

    倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。这篇文章主要介绍了Python倒排索引之查找包含某主题或单词的文件,需要的朋友可以参考下
    2019-11-11
  • Python按行读取文件的实现方法【小文件和大文件读取】

    Python按行读取文件的实现方法【小文件和大文件读取】

    这篇文章主要介绍了Python按行读取文件的实现方法,结合实例形式分析了针对小文件和大文件的读取方法,需要的朋友可以参考下
    2016-09-09
  • 什么是python的函数体

    什么是python的函数体

    在本篇文章里小编给大家分享的是一篇关于python函数体的基础知识点,需要的朋友们可以学习下。
    2020-06-06
  • 通俗易懂了解Python装饰器原理

    通俗易懂了解Python装饰器原理

    这篇文章主要介绍了通俗易懂了解Python装饰器原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09

最新评论