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

news2024/12/24 8:18:31

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

在这里插入图片描述

安装库

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

在这里插入图片描述

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

pip install pywin32 -i https://mirrors.aliyun.com/pypi/simple/

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

在这里插入图片描述

编码

代码如下:

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文件;

在这里插入图片描述

启动程序,进行转换;

在这里插入图片描述

转换完成;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/890788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

由于找不到msvcp140.dll无法继续执行代码是什么原因

使用计算机过程中,有时会遇到一些错误提示,其中之一就是关于msvcp140.dll文件丢失或损坏的错误。msvcp140.dll是Windows系统中非常重要的文件,是Microsoft Visual C Redistributable中动态链接库的文件,如果缺失或损坏&#xff0c…

Git 入门到熟悉

一、版本控制 1.1 什么是版本控制 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单说就是用于管理多人协同开…

管理类联考——逻辑——真题篇——按知识分类——汇总篇——一、形式逻辑——三段论——第二节 规则

文章目录 第二节 三段论-规则题-三段论-规则-补前提-“特推特,否推否,两特两否无结论”得前提是“有的/所有”→所有概念出现两次→中项要周延。题-三段论-规则-补前提-“特推特,否推否,两特两否无结论”得前提是“有的/所有”→…

css 文字排版-平铺

序: 1、表格的宽度要有!!!!! 2、容器不能是display:inline 3、扩展---》node全栈框架 代码 text-align-last: justify; width: 70px; display: inline-block; 主要是用于表单左侧文字排序!

AI如何看待能力,学历,文凭

1 假设: {文凭}⊂{学历}⊂{能力} 2 证明: 首先,我们需要明确这些集合的定义和关系。 {能力}是一个包含各种能力的集合,例如学习能力、沟通能力、创新能力、领导能力和专业技能等。 {学历}是一个包含各种学历的集合&#xff0c…

ps安装找不到msvcp140.dll,分享msvcp140.dll丢失三个修复方法

当在安装PS(Adobe Photoshop)时遇到找不到msvcp140.dll的错误提示时,我首先感到有些困惑,因为这个错误可能会影响我使用某些程序或软件。但是,通过尝试不同的修复方法,我发现问题可以得到解决。 首先缺失ms…

Linux多线程【初识线程】

✨个人主页: 北 海 🎉所属专栏: Linux学习之旅 🎃操作环境: CentOS 7.6 阿里云远程服务器 文章目录 🌇前言🏙️正文1、什么是线程?1.1、基本概念1.2、线程理解1.3、进程与线程的关系…

[oneAPI] Neural Style Transfer

[oneAPI] Neural Style Transfer oneAPINeural Style Transfer特殊环境定义使用包加载数据Neural Style Transfer模型与介绍训练过程结果 比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Intel DevCloud for oneAPI:https://devcl…

1609.奇偶数

目录 一、题目 二、代码 三、完整测试代码 一、题目 1609. 奇偶树 - 力扣(LeetCode) 二、代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0),…

【大数据Hive】hive 事务表使用详解

目录 一、前言 二、Hive事务背景知识 hive事务实现原理 hive事务原理之 —— delta文件夹命名格式 _orc_acid_version 说明 bucket_00000 合并器(Compactor) 二、Hive事务使用限制 参数设置 客户端参数设置 客户端参数设置 三、Hive事务使用操作演示 操作步骤 客…

电脑msvcr120.dll丢失怎么修复,msvcr120.dll怎么安装?

msvcr120.dll是Microsoft Visual C Redistributable的一部分,它是Windows操作系统中的一个动态链接库文件。这个文件包含了一些用于C编程的函数和资源,它们被许多应用程序用于提供特定的功能和服务。如果你在运行某个程序时遇到了缺少msvcr120.dll的错误…

AlexNet中文翻译

ImageNet classification with deep convolutional neural networks 原文链接:https://dl.acm.org/doi/abs/10.1145/3065386 目录 使用深度卷积神经网络进行 ImageNet 分类 摘要 1 简介 2 数据集 3 架构 3.1 ReLU非线性 3.2 多GPU上的训练 3.3 局部响应标准化 3.4 重…

centos安装elasticsearch7.9

安装es 下载elasticsearch安装包解压安装包,并修改配置文件解压进入目录修改配置文件 添加用户,并修改所有者切换用户,运行es如何迁移旧版本的数据 下载elasticsearch安装包 下载地址如下,版本号可以替换成自己想要的。 这里需要注意一点&am…

讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?

同时向讯飞星火、文心一言和通义千问三个国产AI模型提个相同的问题: “python 写一个贪吃蛇的游戏代码” 看哪一家AI写的程序直接能用,谁就胜出! 讯飞星火 讯飞星火给出的代码: import pygame import sys import random# 初…

上海亚商投顾盘:沪指震荡反弹 机器人概念股掀涨停潮

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数今日震荡反弹,科创50盘中涨超1%。机器人概念股掀涨停潮,通力科技、昊志机电、哈焊…

java接口导出csv

1、背景介绍 项目中需要导出数据质检结果,本来使用Excel,但是质检结果数据行数过多,导致用hutool报错,因此转为导出csv格式数据。 2、参考文档 https://blog.csdn.net/ityqing/article/details/127879556 工程环境:…

Spring Clould 网关 - Gateway

视频地址:微服务(SpringCloudRabbitMQDockerRedis搜索分布式) Gateway网关-网关作用介绍(P35) Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2…

The coming up production issues

Introduction Ladies and gentlemen, give it up for the wonderful world of software production ! Now, I know that what youre thinking. "Software production!?" That sounds exciting, well, let me tell you, its a rollercoaster(过山车、剧烈起伏的事物…

【第六讲---非线性优化】

优化与优化库 优化问题 👉优化问题组成 优化对象目标函数/损失函数/评价函数约束条件 👉分类 可以分为凸优化和非凸优化 什么是凸优化呢? 目标函数是凸的(有单一极值点称为是凸的)不等式约束是凸的所在的空间是凸…

容器和云原生(二):Docker容器化技术

目录 Docker容器的使用 Docker容器关键技术 Namespace Cgroups UnionFS Docker容器的使用 首先直观地了解docker如何安装使用,并快速启动mysql服务的,启动时候绑定主机上的3306端口,查找mysql容器的ip,使用mysql -h contain…