Python将Word文档转为PDF

将word转pdf,只能使用办公工具,但是这些工具大都是收费。因此想用python 将word转pdf,发现很好用特此记录下。

方法一:使用docx2pdf模块将docx文件转为pdf

要实现这样的功能,需要用到的就是 docx2pdf 这个python第三方库。对于docx2pdf 库的安装,可以利用下述的pip命令进行安装。
pip install docx2pdf

在这里插入图片描述
安装完之后就可以使用了,如下:

from docx2pdf import convert
#文件路径必须是全局的
file="D:\Test\Python\Pytest\AI\招标参数.docx"
#获取文件名称
filename=file.split(".docx")[0]
#将 docx文档转换为 PDF
convert(file,f"{filename}.pdf")

注意:
1,文件路径必须是完整的,否则会报错”找不到文件xxx“;
2,docx2pdf只支持将后缀为docx转为pdf,不支持doc格式的

方法二: 使用win32com模块对doc和docx文件转为pdf

win32com 模块主要为 Python 提供调用 windows 底层组件对 word 、Excel、PPT 等进行操作的功能,只能在 Windows 环境下使用,并且需要安装 office 相关软件才行(WPS也行)。

使用 win32com 模块主要是因为 Python 针对 word 文档操作的第三方库相对较少并且功能较弱,Python 有针对 .docx 后缀文件的第三方库如 python-docx、pydocx等等,但是没有针对 .doc 和 .wps 的第三方库,所以这里就只能使用 win32com 模块。对而言 Python 针对 Excel文档操作的第三方库就非常友好。
 要实现这样的功能,需要用到的就是 pywin32库。对于pywin32库的安装,可以利用下述的pip命令进行安装。

pip install pywin32

安装完之后就可以使用了,如下将doc文档转换为pdf:

from win32com import client
def doc2pdf(file):word = client.Dispatch("Word.Application")  # 打开word应用程序# for file in files:doc = word.Documents.Open(file)  # 打开word文件doc.SaveAs("{}.pdf".format(file[:-4]), 17)  # -4指的是将doc后缀的文档另存为后缀为".pdf"的文件,txt=4, html=10, docx=16, pdf=17doc.Close()  # 关闭原来word文件word.Quit()

进阶使用一

针对批量转换的可以使用如下函数封装
for file in filelist:filpath=filelist+"\\"+filedoc2pdf(filepath)

进阶使用二

其中上述方法也支持将docx格式文档转换为pdf,因此针对上述方法做了一个兼容,如下:
from win32com import client#转换doc,docx为pdf
def doc2pdf(file,n):word = client.Dispatch("Word.Application")  # 打开word应用程序# for file in files:doc = word.Documents.Open(file)  # 打开word文件"""1;txt=4, html=10, docx=16, pdf=17,2:n=-4,转换doc格式文档为pdf;n=-5转换docx格式文档为pdf"""doc.SaveAs("{}.pdf".format(file[:n]), 17)  # 另存为后缀为".pdf"的文件,doc.Close()  # 关闭原来word文件word.Quit()```

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

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

相关文章

无惧任天堂的法律威胁:Switch模拟器Ryujinx v1.2.72版发布

此前任天堂向多个提供 Nintendo Switch 模拟器项目发送律师函甚至直接起诉,要求这些项目立即停止更新、删除以及向任天堂提供经济赔偿。其中 Ryujinx 项目已经在 2024 年 10 月 1 日因任天堂的法律威胁而放弃项目,不过很快就有分叉版本出现,这…

JavaWeb——Web入门(6/9)-HTTP协议:协议解析(客户端的 HTTP 协议解析、服务端的 HTTP 协议解析、Web服务器的作用)

目录 概述 客户端的 HTTP 协议解析 服务端的 HTTP 协议解析 Web服务器的作用 概述 了解完 HTTP 协议的请求数据格式以及响应数据格式之后,接下来我们来讲了解 HTTP 协议的解析。 HTTP 协议的解析分为客户端和服务端两个部分,客户端浏览器中内置了解…

操作系统-实验报告单(2)

目录 1 实验目标 2 实验工具 3 实验内容、实验步骤及实验结果 一、自定义操作系统并启动 1. 最简单操作系统的编写并生成镜像文件 2.虚拟机启动操作系统 【思考题:1、仔细阅读helloos.nas,结合操作系统启动过程尝试分析它的作用;2、若…

城镇住房保障:SpringBoot系统优化技巧

3系统分析 3.1可行性分析 通过对本城镇保障性住房管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本城镇保障性住房管理系统采用SSM框架,JA…

FlyMcu串口下载STLink Utility

1、FlyMcu FlyMcu串口下载,同STC-ISP(51单片机下载)。 使用步骤: 1、STM32的USART1通过串口转usb连接到电脑 2、通过keil生成Hex、bin文件 生成bin、hex文件可参考 keil生成bin文件(简单)-CSDN博客 创建…

aws(学习笔记第十课) 对AWS的EBS如何备份(snapshot)以及使用snapshot恢复数据,AWS实例存储

aws(学习笔记第十课) 对AWS的EBS如何备份(snapshot)以及使用snapshot,AWS实例存储 学习内容: 对AWS的EBS如何备份AWS实例存储EBS和实例存储的不足 1. 对AWS的EBS如何备份(snapshot)以及使用snapshot恢复数…

论文2—《基于柔顺控制的智能神经导航手术机器人系统设计》文献阅读分析报告

论文报告:基于卷积神经网络的手术机器人控制系统设计 摘要 本研究针对机器人辅助微创手术中定向障碍和缺乏导航信息的问题,设计了一种智能控制导航手术机器人系统。该系统采用可靠和安全的定位技术、7自由度机械臂以及避免关节角度限制的逆运动学控制策…

《数据结构与算法》二叉树基础OJ练习

二叉树的基础知识详见:《数据结构与算法》二叉树-CSDN博客 1 单值二叉树 思路 我们把树分成当前树(用根和左孩子还有右孩子进行比较,如果左孩子或者右孩子为空那就不比了,如果左右孩子或者其中一个存在就比较,相等就是…

栈和队列(C 语言)

目录 一、栈1. 栈的概念2. 栈的结构3. 栈的实现思路4. 栈的实现代码 二、队列1. 队列的概念2. 队列的结构3. 队列的实现思路4. 队列的实现代码5. 循环队列 一、栈 1. 栈的概念 栈是一种特殊的线性表,只允许在固定的一端进行插入和删除操作,该端被称为栈…

自动化测试工具Ranorex Studio(二十五)-库的拆分

默认地,每一个Ranorex Studio项目包含一个对象库文件,这个文件自动用在每一个新创建的录制中。你可以在一个单独的库文件中管理一个测试套件项目中所有的UI元素,但是在一个自动化测试项目中多个对象库的存在还是有一些原因的: .测…

Centos下安装Maven(无坑版)

Linux 安装 Maven Maven 压缩包下载与解压 华为云下载源,自行选择版本 下面的示例使用的是 3.8.1 版本 wget https://repo.huaweicloud.com/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz解压 tar -zxvf apache-maven-3.8.1-bin.tar.gz移…

99、Python并发编程:多线程的问题、临界资源以及同步机制

引言 多线程技术的引入,可以帮助我们实现并发编程,一方面可以充分利用CPU计算资源,另一方面,可以在用户体验上带来极大的改善。但是,多线程技术也存在一些问题。本文就来简单聊一下多线程引入导致的问题,以…

jmeter常用配置元件介绍总结之取样器

系列文章目录 1.windows、linux安装jmeter及设置中文显示 2.jmeter常用配置元件介绍总结之安装插件 3.jmeter常用配置元件介绍总结之取样器 jmeter常用配置元件介绍总结之取样器 2.取样器2.1.HTTP请求2.2.Debug Sampler2.3.JSR223 Sampler2.4.JDBC Connection Configuration和J…

Python练习11

Python日常练习 题目: 编写一个石头剪刀布游戏,该程序要求完成如下功能: (1) 显示游戏规则,提醒用户输入一个1-3的整数或者直接回车。 用户输入回车时游戏结束。 用户输入不合法(包括输入的…

什么是欧拉角和四元数

涉及机器人调度工作的一些基本概念整理理解 目录 什么是欧拉角和四元数 ?相关工具网站相关工具代码 什么是欧拉角和四元数 ? 这里画了一张图,简明方便理解: 欧拉角 (Euler Angles) 是一种描述物体在三维空间旋转姿态的方法&…

关于几种卷积

1*1卷积 分组卷积&深度可分离卷积 空洞卷积、膨胀卷积 转置卷积 https://zhuanlan.zhihu.com/p/80041030 https://yinguobing.com/separable-convolution/#fn2 11的卷积可以理解为对通道进行加权,对于一个通道来说,每个像素点加权是一样的&am…

std::copy

std::copy 是 C 标准库中的一个算法&#xff0c;用于将一个序列中的元素复制到另一个位置。这个算法定义在 <algorithm> 头文件中。 --- 函数原型 std::copy 有几个不同的重载版本&#xff0c;但以下是最常用的两个&#xff1a; template <class InputIterator, c…

PyQt5实战——翻译的实现,第一次爬取微软翻译经验总结(八)

个人博客&#xff1a;苏三有春的博客 系类往期文章&#xff1a; PyQt5实战——多脚本集合包&#xff0c;前言与环境配置&#xff08;一&#xff09; PyQt5实战——多脚本集合包&#xff0c;UI以及工程布局&#xff08;二&#xff09; PyQt5实战——多脚本集合包&#xff0c;程序…

【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!

数据集列表 帮忙采集开源数据集&#xff0c;包括YOLO格式数据集和Pascal VOC格式数据集&#xff0c;含图像原文件和标注文件&#xff0c;几百张到几千张不等&#xff0c;国内外公开数据集均可。 针对目标检测&#xff0c;YOLO系列模型训练&#xff0c;分类训练等。 部分数据…