使用Python批量将Word文件转为PDF文件

说明:在使用Minio服务器时,无法对word文件预览,如果有需要的话,可以将word文件转为pdf文件,再存储到Minio中,本文介绍如何批量将word文件,转为pdf格式的文件;

安装库

首先,需要安装一个库,pywin32;

可以在cmd窗口敲下面的命令安装,使用阿里云镜像:

powershell 复制代码
pip install pywin32 -i https://mirrors.aliyun.com/pypi/simple/

如果你使用的是pycharm,我建议直接在软件里安装,如下:

编码

代码如下:

python 复制代码
import os
import time

import win32com.client


def convert_to_pdf(input_path, output_path):
    # 使用win32com对象打开Word应用程序
    word = win32com.client.Dispatch("Word.Application")

    # 去除程序界面显示
    word.Visible = 0

    # 打开Word文档
    doc = word.Documents.Open(input_path)

    # 将Word文档保存为PDF文件
    doc.SaveAs(output_path, FileFormat=17)

    # 关闭Word文档
    doc.Close()

    # 关闭Word应用程序
    word.Quit()


def main(input_path, output_path, file):
    try:
        # 转换为绝对路径
        input_path = os.path.abspath(input_path + "\\" + file)

        if file[-4:] == "docx":
            output_path = os.path.abspath(output_path + "\\" + file[:-5] + ".pdf")
        else:
            output_path = os.path.abspath(output_path + "\\" + file[:-4] + ".pdf")

        # 调用函数进行转换
        convert_to_pdf(input_path, output_path)
        print("转换成功!")
    except Exception as e:
        print(f"转换失败: {str(e)}")


if __name__ == "__main__":
    # 输入路径
    input_path = r""

    # 输出路径
    output_path = r""

    # 获取输入路径下的所有文件
    listdir = os.listdir(input_path)

    # 遍历所有文件
    for file in listdir:

        # 判断是否为Word文档
        if file[-4:] == "docx" or file[-3:] == "doc":
            main(input_path, output_path, file)

            # 休眠2秒,防止Word应用程序未关闭就进行下一次转换
            time.sleep(2)

测试

例如桌面上test文件夹里,有一个word文件;

启动程序,进行转换;

转换完成;

相关推荐
xixiaoyunya21 分钟前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php
把我格子衫拿来31 分钟前
Dice 很高就够了吗?分割评价中的 IoU、表面距离与 HD95
python·图像分割·模型评估·医学影像·dice
曲径海盗44 分钟前
【Python 学习第 31 天】复习:变量与数据类型 等 3 题
python·学习笔记·编程入门
Data_Journal1 小时前
如何绕过 Cloudflare:网页抓取的最佳方法
网络·python
我命由我123452 小时前
智能助手通用问答边界
人工智能·python·学习·ai·学习方法·ai编程·智能体
Angeldream1232 小时前
第 4 章 医学影像预处理
图像处理·人工智能·python·医学影像·医学影像处理
Web3&Basketball2 小时前
实测Gemini4Argon:ERQA 87%登顶长程任务榜
数据库·python·大模型·多模态·gemini·长上下文·推理优化
把我格子衫拿来2 小时前
医学影像重采样:spacing 改了,为什么模型位置也跟着错了?
python·dicom·医学影像·simpleitk·重采样
打工仔折腾 AI3 小时前
用 Dashlet 把极空间 NAS 服务入口整理成统一导航首页的实践
java·开发语言·人工智能·后端·python·rpc·ai agent 实战
wuyk5553 小时前
PyQt6-第05讲-QtDesigner工作流与ui文件
python·ui·pyqt