浅浅写一个Word、PowerPoint、Excel文档转PDF工具

前言

最近在搞知识库,需要把各种 Word、PowerPoint、Excel 文件转换成 PDF 文件,不然 Word 中的表格中的文字提取会出现一些问题;使用 Office 或者 WPS 将大量文件转换成 PDF 需要频繁重复打开文件,点击保存为PDF,然后再关闭,非常繁琐。所以就简单的写了下面的 Python 程序来帮助我转化。

代码

下面的程序需要使用开源 Office 工具 —— libreoffice,安装该工具后才能使用下面的命令行才能使用 libreoffice 中的 PDF 转化功能将文档转化。

import os
import subprocess
from pathlib import Path
from tkinter import Tk, filedialog, messageboxdef convert_to_pdf(input_file):try:# Get the directory of the input fileinput_dir = os.path.dirname(input_file)# Prepare output file pathoutput_file = os.path.join(input_dir, Path(input_file).stem + '.pdf')# Convert to PDF using LibreOfficesubprocess.run(['soffice', '--headless', '--convert-to', 'pdf', input_file, '--outdir', input_dir],check=True)print(f"Converted {input_file} to {output_file}")return output_fileexcept Exception as e:print(f"Error converting file {input_file}: {e}")return Nonedef select_files_and_convert():# Supported file extensionssupported_extensions = [  ('files', '*.doc;*.docx;*.ppt;*.pptx;*.xls;*.xlsx'),('Word files', '*.doc;*.docx'),('PowerPoint files', '*.ppt;*.pptx'),('Excel files', '*.xls;*.xlsx')]# Create Tkinter root windowroot = Tk()root.withdraw()  # Hide the root window# Open file dialog to select filesfiles = filedialog.askopenfilenames(title="Select files to convert", filetypes=supported_extensions)if not files:messagebox.showinfo("No files selected", "No files were selected for conversion.")return# Convert selected filesfor file in files:output_file = convert_to_pdf(file)if output_file:# messagebox.showinfo("Success", f"Converted {file} to {output_file}")print(f"Converted {file} to {output_file}")        else:# messagebox.showerror("Error", f"Failed to convert {file}")print(f"Failed to convert {file}")def main():select_files_and_convert()if __name__ == "__main__":main()

效果展示

效果大致如下,点击运行后,就会弹出选择框,批量选择文件后,就会开始转化。

在这里插入图片描述

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

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

相关文章

谁懂啊!第一次用AI绘画做表情包,居然直接爆收入了!

大家好,我是设计师阿威 我的第一套表情包上周六上午11点终于在微信的表情商店上架啦! 为什么说“终于”? 那是因为背后是无数次的努力–>被退回–>反复修改–>再提交–>再被退回–>再精心修改–>终于通过啦!…

服务器硬件介绍(1)

硬件设备 服务器:数据中心的核心组件是服务器,它提供计算能力和数据存储解决方案。服务器通常配备多核处理器、大量RAM和高速存储系统,以满足高并发处理和大数据存储的需求。工作站:工作站是专业用户执行复杂计算任务和数据处理的…

电脑知识 如何看懂串口通信协议(程序员视角)

目录 前言 一、串口文档 二、明确身份 三、串口设置 四、看懂命令格式 五、看懂发送命令的格式 1.帧头和帧尾 2.帧内数据长度 3.帧内数据/具体命令 4.整体命令 5.真正的命令字和命令值 六、第一个案例 1.发送命令 2.雷达的回答 七、作者的话 前言 用一个案例&#…

提升学校管理效率,智慧校园解决方案来袭

你是不是曾为学校管理效率低下而困扰?是不是对传统的教育模式感到力不从心?现在,一个划时代的解决方案来啦——智慧校园! 随着科技的不断发展,智慧校园正逐渐改变着学校的管理方式。通过将信息技术与教育相结合&#x…

照片数据恢复,6个策略轻松恢复!

“我在电脑上保存了很多照片,在清理电脑时一不小心误删了,现在完全没办法将它们找回,大家有什么方法吗?希望给我一些建议。” 在数字时代,照片成为了我们记录生活、珍藏回忆的重要载体。无论是旅行中的风景照、家庭聚会…

Spring中的事务传递性小记

在Spring中,事务的传递性主要由Propagation属性控制,它定义了当方法被其他方法调用时,应该如何处理事务。Propagation属性有以下几种值: PROPAGATION_REQUIRED:如果当前没有事务,就新建一个事务&#xff0…

聊一聊资源监控

聊一聊资源监控 为什么要进行资源监控? 为什么在稳定性测试的时候需要进行相应的资源监控呢?简单来说因为我们需要知道在程序运行的时候能够主动观察到资源的消耗情况以便及时发现问题 怎么进行监控? 目前我们常用对资源的监控可以分为如…

Spring Boot 项目打包 + Shell 脚本部署详细总结

Spring Boot 项目打包 Shell 脚本部署详细总结 在现代企业应用开发中,Spring Boot项目的自动化部署是一个非常重要的环节。通过自动化部署,我们可以减少人为操作带来的错误,提高部署效率和可靠性。本文将详细介绍如何将Spring Boot项目打包…

为什么C#越学越陌生,搞那么多奇怪的东西?

绝大多数编程语言,除了基础语法,其他的都是可选的工具,可用可不用,顺手你就用,不顺手就别用。 刚好我有一些资料,是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」, 点…

啥是多边央行数字货币桥项目(个人技术理解)

(1)是啥:是基于CBDC(央行发行的电子货币)的跨境支付互联互通的一种尝试,是点对点的交易。交易时商业银行作为同步节点(点对点转账中的点),央行作为共识节点(点…

vue3第三十八节(TS 之 class 类实现及使用)

引言:面相对象编程在我们工作中必须同时也是不可或缺的一部分,想要对JavaScript | TypeScript 有更加深刻的理解应用,我们需要充分学习应用 1、类的基本用途 在TS中 类描述了所创建的对象共同的属性和方法。TypeScript 支持面向对象的所有特…

钉钉二次开发-企业内部系统集成官方OA审批流程

场景:企业内部开发人员不足,需要从以前集成Activiti的方式转换成集成钉钉官方OA审批流程,提高开发效率和系统稳定性。 摘要:企业内部系统集成Acitiviti开源工作流存在的问题: 1. 企业需要单独搭建工作流服务&#xff…

服务器数据恢复—强制上线raid5阵列离线硬盘导致raid不可用的数据恢复案例

服务器数据恢复环境: 某品牌2850服务器中有一组由6块SCSI硬盘组建的raid5磁盘阵列,linux操作系统ext3文件系统。 服务器故障: 服务器运行过程中突然瘫痪。服务器管理员检查阵列后发现raid5阵列中有两块硬盘离线,将其中一块硬盘进行…

2种方法!一键批量下载1688主图、sku图、视频和详情页

最近关于如何一键下载1688主图、sku图、视频和详情页相关的问题被商友们问爆了。店雷达直接上实操教程,建议收藏,不迷路! 方法一:通过选品中心下载 1、在店雷达选品中心(如果想在1688进货的就在1688选品库中选品&…

视频监控管理平台LntonCVS视频汇聚平台充电桩视频监控应用方案

随着新能源汽车的广泛使用,公众对充电设施的安全性和可靠性日益重视。为了提高充电桩的安全管理和站点运营效率,LntonCVS公司推出了一套全面的新能源汽车充电桩视频监控与管理解决方案。 该方案通过安装高分辨率摄像头,对充电桩及其周边区域进…

Python中zip函数的奥秘与运用

Python中zip函数的奥秘与运用 在Python的编程世界中,zip函数如同一把神秘而强大的钥匙,能够开启数据处理的新境界。它的功能看似简单,但深入探究后,你会发现其中蕴含的奥秘与运用之广泛,足以让人惊叹。 四个方面&…

html5实现端午节网站源码

文章目录 1.设计来源1.1 端午首页页面1.2 端午由来页面1.3 端午图集页面1.4 端午活动页面1.5 给我留言页面 2.效果和源码2.1 动态效果2.2 目录结构 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/139524377 ht…

MYTED | TED100篇打卡总结 辅助学习网站使用说明

文章目录 📚背景🐇timeline🐇版本记录🐇产出小结 📚功能说明🐇左侧🐇中间🐇右侧 📚背景 🐇timeline 在一个平常的下午,一次平常的桌面整理&#…

软考对进入事业编的人有帮助吗?

首先肯定的说,软考是可以用来评职称的。 但是, 这取决于你所在公司的性质和工作岗位。 软考全国统一实施后,不再进行计算机技术与软件相应专业和级别的专业技术职务任职资格评审工作。计算机软件资格考试既是职业资格考试,又是…

代理记账公司的标准,理解并遵循业务流程和道德规范

代理记账公司的存在是为了帮助企业管理和报告他们的财务信息,他们为企业的各种交易提供会计服务,并确保企业遵守所有相关的法规和准则,这些公司需要严格地符合一些标准以维持良好的声誉和服务质量。 代理人必须拥有适当的证书和执照&#xff…