Python批量Word转PDF神器,让你从此轻松转换文档!

大家好!今天我们来聊聊工作中可能遇到的一个“头大”问题:如何批量将Word文档转成PDF?是不是光听听都感觉头皮发麻?

不用担心,今天我们就来分享一个Python小技巧,让你在批量转换文档时再也不用抓狂!

为什么需要批量Word转PDF?

想象一下,你是公司的行政小能手,每天面对成堆的合同、报告需要转换格式,手动操作简直不敢想象的累。关键是,老板还老催!Python作为技术潮人必备的技能之一,这时候就派上用场了!

工具准备

我们需要python-docx来处理Word文件内容,comtypes库用来调用Windows的脚本接口实现Word转PDF操作。这两位神器助攻绝对让你事半功倍!

首先,安装这两个库:

pip install python-docx comtypes

开工大吉

准备好了吗?让我们划开Python的面板,用代码解决这个烦人的问题吧!

import os
import comtypes.client


def docx_to_pdf(docx_path, pdf_path):
    word = comtypes.client.CreateObject('Word.Application')
    doc = word.Documents.Open(docx_path)
    doc.SaveAs(pdf_path, FileFormat=17)  # 17 is the format type for PDFs
    doc.Close()
    word.Quit()


def batch_convert_docx_to_pdf(input_folder, output_folder):
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    for filename in os.listdir(input_folder):
        if filename.endswith(".docx"):
            docx_path = os.path.join(input_folder, filename)
            pdf_filename = f"{os.path.splitext(filename)[0]}.pdf"
            pdf_path = os.path.join(output_folder, pdf_filename)

            docx_to_pdf(docx_path, pdf_path)
            print(f"Converted {filename} to PDF.")


# 运行批量转换
batch_convert_docx_to_pdf(
    "C:/Users/olive/Desktop/待转换的Word",
    "C:/Users/olive/Desktop/转换后的PDF")

代码解读

1、转换函数docx_to_pdf

这个小函数负责干实事儿,把一个Word文件转成PDF。FileFormat=17是指定保存为PDF格式的魔法数字。

2、批量转换函数 batch_convert_docx_to_pdf

这个函数会扫描指定的输入文件夹,找到所有的 .docx 文件,逐个调用 docx_to_pdf 函数批量转成PDF并输出到指定文件夹。

如果还有不明白的地方,可以细读一下下面的详细解析:

1、首先,导入了必要的库:
  - os:用于文件路径操作和文件夹操作。
  - comtypes.client:用于与COM(Component Object Model)组件进行通信的客户端模块,这里用于操作Microsoft Word应用程序。

2、定义了函数docx_to_pdf:
  - 该函数使用comtypes库创建了一个Word应用程序对象(word)。
  - 打开并操作对应路径的Word文档,将其另存为PDF格式文件。
  - 最后关闭Word文档和退出Word应用程序。

3、定义了函数batch_convert_docx_to_pdf:
  - 该函数接受两个参数:输入文件夹路径(input_folder)和输出文件夹路径(output_folder)。
  - 如果输出文件夹不存在,则创建输出文件夹。
  - 遍历输入文件夹中的所有文件,对扩展名为".docx"的文件执行转换操作,调用docx_to_pdf函数将Word文档转换为PDF格式。

4.调用batch_convert_docx_to_pdf函数,传入待转换的Word文档所在的文件夹路径和转换后的PDF文件存放的文件夹路径。

激动人心的测试

我i们先准备几个Word文档,就用上次生成的合同文档吧:

接着,要修改一下测试代码,记得改成你自己的文件路径:

# 运行批量转换
batch_convert_docx_to_pdf(
    "C:/Users/olive/Desktop/待转换的Word",
    "C:/Users/olive/Desktop/转换后的PDF")

最后,运行一下我们的代码,检验一下我们的成果吧:

在【转换后的PDF】目录下,成功生成了3个PDF文档:

我们随便打开一个PDF文档,看一下效果:

效果非常棒!!

大功告成

怎么样?是不是感觉超级简单?只要执行一次后,你就可以坐在办公桌前翘脚喝咖啡,看着代码帮你忙得不亦乐乎!在这个快节奏的时代,掌握一些小技能真的能帮我们省去不少时间。希望今天的分享能帮助到你,批量转换Word文档再也不是难题。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 09:18:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 09:18:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 09:18:02       58 阅读
  4. Python语言-面向对象

    2024-07-19 09:18:02       69 阅读

热门阅读

  1. 单例设计模式

    2024-07-19 09:18:02       21 阅读
  2. 系统架构师(每日一练4)

    2024-07-19 09:18:02       23 阅读
  3. PTA - 首字母大写(python编程300例)

    2024-07-19 09:18:02       23 阅读
  4. Pandas库学习之DataFrame.drop()函数

    2024-07-19 09:18:02       22 阅读
  5. Kotlin 协程简化回调

    2024-07-19 09:18:02       22 阅读
  6. YOLOv8_ ByteTrack目标跟踪、模型部署

    2024-07-19 09:18:02       23 阅读
  7. Git 和 Subversion (SVN)的全方面对比

    2024-07-19 09:18:02       21 阅读
  8. 使用 com.alibaba:easyexcel 导出excel文件时遇到的问题

    2024-07-19 09:18:02       23 阅读