python将word文件转换成pdf文件

要将word文件转换成pdf文件,可以使用Python的pywin32库结合Microsoft Office软件来实现。
方法一:

import win32com.client as win32def word_to_pdf(input_file, output_file):word = win32.gencache.EnsureDispatch('Word.Application')doc = word.Documents.Open(input_file)doc.SaveAs(output_file, FileFormat=17)doc.Close()word.Quit()# 示例使用
input_file = 'input.docx'
output_file = 'output.pdf'
word_to_pdf(input_file, output_file)

在代码中,首先导入了win32com.client模块,并使用EnsureDispatch方法来创建一个Word应用程序的对象。然后使用Documents.Open方法打开输入的Word文件。

通过调用SaveAs方法,并将FileFormat参数设置为17,可以将Word文件保存为PDF格式。最后,使用Close方法关闭打开的文档,并使用Quit方法关闭Word应用程序。

请注意,此代码需要安装pywin32库和Microsoft Office软件才能正常运行。

方法二:
此方法适用于linux和Windows环境,方法一只适用于Windows环境

# word转Pdf
def word_change_pdf(word_file_path):"""将word文件转换成pdf文件:param word_file_path: word文件地址:return: 返回转成的pdf地址信息"""suffix = os.path.basename(word_file_path).split('.')[1]# 另存为pdf文件pdf_path = word_file_path.replace(suffix, "pdf")out_dir = pdf_path.rsplit('/', 1)[0] + '/'if 'window' in os_system:# LibreOffice本地位置D:/Download/LibreOffice/program/soffice.execommand = ['D:/Download/LibreOffice/program/soffice.exe', '--convert-to', 'pdf', '--outdir', out_dir,word_file_path]else:# LibreOffice在虚拟机的位置:/usr/bin/libreoffice7.6command = ['/opt/libreoffice7.6/program/soffice.bin', '--convert-to', 'pdf', '--outdir', out_dir,word_file_path]subprocess.Popen(command).communicate()return pdf_path

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

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

相关文章

上海泗博HART转ModbusTCP网关HME-635应用案例之组态王和超声波液位计通信

如今工业现场的应用也逐渐把现场的不同应用协议转换成以太网,以此来提升现场的通信速度和质量。Modbus TCP是工业以太网协议的一种,也是现场应用中最常使用的。本应用案例是基于Modbus TCP的组态王和基于HART的超声波液位计之间数据通讯的具体应用。 应用…

c#cad 创建-点(六)

运行环境 vs2022 c# cad2016 调试成功 一、代码说明 创建一个点的命令方法。代码的主要功能是在当前活动文档中创建一个点,并将其添加到模型空间块表记录中。 代码的主要步骤如下: 获取当前活动文档、数据库和编辑器对象。使用事务开始创建点的过程…

Java排序方法

在Java中,有多种排序方法可用,其中包括快速排序、归并排序、插入排序等等。Java标准库提供了对数组和集合进行排序的方法。下面是一些常用的Java排序方法的示例: 1. 使用Arrays类中的sort方法对数组进行排序(快速排序&#xff09…

【Git版本控制 05】多人协作

目录 一、邀请开发用户 二、新建远程分支 三、拉取远程分支 四、推送远程分支 五、合并远程分支 六、多分支协作 一、邀请开发用户 在windows环境下,再clone同⼀个项⽬仓库,来模拟⼀起协作开发的另⼀名⼩伙伴。 际开发中,每个⽤⼾都有…

Redis持久化-fsync策略

在Redis中,fsync 策略用于控制何时将数据同步到磁盘上。这是持久化功能的一部分,它确保即使在发生意外关闭或崩溃时,Redis的数据也不会丢失。 有三种主要的 fsync 策略: no(默认): Redis不会主…

vue的8大生命周期

第072个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 提供vue2的一些基本操作:安装、引用,模板使用,computed&a…

npm_config_xxx

// package.json{ "scripts": { "log": "node index.js", } }// index.js function logProcessEnv(key){ console.log(process.env[${key}], process.env[key]); } logProcessEnv(npm_config_foo); 问题: npm run log 和 yarn log…

sui move笔记

前言 一些疑问: sui 和move是什么关系? 基础 基本数据类型 Move 的基本数据类型包括: 整型 (u8, u32,u64, u128,u258)、布尔型 boolean 和地址 address。 Move 不支持字符串和浮点数。 _u8:代表8位无符号整数类型,范围是0~255。占用内存…

【Python】虚拟环境miniconda安装(python3.7, python3.x)

背景 使用Python开发项目时,我们一般都需要安装环境,可能是在物理机上直接安装,也可能是在虚拟环境上安装,当前是怎么按照conda环境的示例,可以指定安装Python3.x的所有版本。 安装 首先,需要登录当前的…

深入对比:java中Synchronized关键字和ReentrantLock锁的终极对决

Synchronized和ReentrantLock在Java中都是用来控制并发访问共享资源的机制,但它们在获取释放锁的方式、锁的特性以及锁的实现级别等方面存在一些差异。 锁的特性 synchronized是Java的关键字,可以隐式地获取和释放锁。synchronized关键字通过内置的锁机…

vue百度地图的和element输入框/v-region的联动

vue百度地图的使用 第一步:安装插件第二步:main.js中引用第三步:页面中使用 第一步:安装插件 npm install vue-baidu-map --save第二步:main.js中引用 // 百度地图 import BaiduMap from vue-baidu-map Vue.use(Baid…

微信小程序(三十九)表单信息收集

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.表单收集的基本方法 2.picker的不足及解决方法 源码&#xff1a; index.wxml <!-- 用户信息 --> <view class"register"><!-- 绑定表单信息收集事件--><form bindsubmit"…

计算两个数相除后的余数返回值为浮点型math.fmod(x, y)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算两个数相除后的余数 返回值为浮点型 math.fmod(x, y) [太阳]选择题 请问以下代码执行math.fmod()后输出的结果是&#xff1f; import math print("【执行】math.fmod(10, 4)"…

sql查询大小写问题

IN() 函数大小敏感判断 如果你在使用 MySQL 的 IN() 函数时发现大小写不敏感&#xff0c;那可能是由于你的 MySQL 数据库的配置设置了大小写不敏感的规则。 这通常是由 lower_case_table_names 参数引起的。在 MySQL 中&#xff0c;这个参数决定了数据库系统在存储和比较表名…

高斯伪谱C++封装库开源!

Windows x64/86 C无依赖运行高斯伪谱法求解最优控制问题&#xff0c;你只需要ElegantGP! Author: Y. F. Zhang His Github: https://github.com/ZYunfeii 写在前面 这个库在你下载它的那一时刻起不再依赖任何其他代码&#xff0c;直接可用来构建C的最优控制问题并进行求解。…

springboot163美食推荐商城的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

C++多线程:this_thread 命名空间

std::this_thread 是 C 标准库中提供的一个命名空间&#xff0c;它包含了与当前线程相关的功能。这个命名空间提供了许多与线程操作相关的工具&#xff0c;使得在多线程环境中更容易进行编程。 源码类似于如下&#xff1a; namespace std{namespace this_thread{//...........…

图片加速接口:缓存图片,加速访问,解决防盗链

CSDN会自动把图片存到自己的图床&#xff0c;测试效果不好&#xff0c;建议到 https://www.skyqian.com/archives/speed-up-picture.html 查看效果。 引言 不知道是否有遇到以下场景&#xff1a; 图片打开很慢&#xff01;因为图片源来自于国外。图片可以正常打开&#xff0c…

在C++的union中使用std::string(非POD对象)的陷阱

struct和union的对比 union最开始是C语言中的关键字&#xff0c;在嵌入式中比较常见&#xff0c;由于嵌入式内存比较稀缺&#xff0c;所以常用union用来节约空间&#xff0c;在其他需要节省内存的地方也可以用到这个关键字&#xff0c;写一个简单程序来说明union的用途 struc…

docker 运行jar包 指定配置文件

要在Docker中运行JAR包并指定配置文件&#xff0c;你可以创建一个Dockerfile来定义你的容器环境&#xff0c;并在其中指定如何运行JAR包和配置文件。下面是一个简单的例子&#xff0c;展示了如何在Dockerfile中设置这些配置&#xff1a; 第一步&#xff1a;创建 Dockerfile文件…