广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python批量实现Word、EXCLE、PPT转PDF文件
  • 759
分享到

Python批量实现Word、EXCLE、PPT转PDF文件

win32com办公自动化批量实现 2023-09-25 21:09:40 759人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

 一、绪论背景         在日常办公和文档处理中,有时我们需要将多个Word文档、excel表格或PPT演示文稿转换为pdf文件。将文档转换为PDF格式的好处是它可以保留文档的布局和格式,并且可以在不同平台上进行方便的查看和共享。

 一、绪论背景

        在日常办公和文档处理中,有时我们需要将多个Word文档、excel表格或PPT演示文稿转换为pdf文件。将文档转换为PDF格式的好处是它可以保留文档的布局和格式,并且可以在不同平台上进行方便的查看和共享。

        本篇博文将介绍如何使用python编程语言批量实现将多个Word、Excel和PPT文件转换为PDF文件。我们将通过使用Python第三方库来读取、编辑和保存这些文档,并使用合适的转换工具将它们转换为PDF格式。

        具体实现方面,我们将首先安装所需的Python库和相关软件,主要使用三个库函数:os, win32com.client, GC

  1)osos 是Python内置的一个与操作系统交互的库。它提供了许多用于处理文件和目录的函数,例如创建、删除、重命名文件或目录,获取文件属性,遍历目录等。通过使用 os 库,我们可以在Python程序中执行各种与操作系统相关的任务。

  2)win32com.clientwin32com.client 是一个用于与windows平台上的COM组件进行交互的Python库。COM(Component Object Model)是一种面向对象的组件技术,允许不同的应用程序之间进行通信和交互。win32com.client 库提供了一种方便的方式来调用和操作COM组件,如Microsoft Office应用程序(Word、Excel、PowerPoint等)。通过这个库,我们可以自动化执行一些Office任务,如读写文档、操作Excel表格、创建PPT演示文稿等。

  3)gcgc 是Python内置的垃圾回收模块。垃圾回收是指在程序执行过程中,自动检测和回收不再使用的内存空间,以提高内存利用率和程序性能。gc 模块为我们提供了一些功能,如手动触发垃圾回收、获取和设置垃圾回收的阈值等。尽管Python有自动的垃圾回收机制,但在某些情况下,我们可能需要手动控制垃圾回收的行为。

        然后,我们将编写Python代码来遍历指定文件夹中的所有文档,并对每个文档进行逐个转换。

        最后,我们将保存转换后的PDF文件到指定的目录中。

        通过阅读本篇博文,你将学习到如何使用Python编程语言批量实现将多个Word、Excel和PPT文件转换为PDF文件的方法。这将为你提供一种自动化的方式来处理文档转换任务,节省时间和精力,并提高工作效率。

        无论你是一位办公人员、学生还是有大量文档需要处理的个人用户,本篇教程都将帮助你掌握如何使用Python批量实现Word、Excel和PPT转换为PDF文件。让我们一起开始这个方便实用的文档处理之旅吧!

二、代码实践

   大家运行本代码,只需要更改为自己的路径即可。如代码中我的地址:D:\PyCharmproject2023\code_test_project\shan_test\data,改为你本地地址即可。

import os, win32com.client, gC# Worddef word2Pdf(filePath, words):    # 如果没有文件则提示后直接退出    if (len(words) < 1):        print("\n【无 Word 文件】\n")        return    # 开始转换    print("\n【开始 Word -> PDF 转换】")    try:        print("打开 Word 进程...")        word = win32com.client.Dispatch("Word.Application")        word.Visible = 0        word.DisplayAlerts = False        doc = None        for i in range(len(words)):            print(i)            fileName = words[i]  # 文件名称            fromFile = os.path.join(filePath, fileName)  # 文件地址            toFileName = changeSufix2Pdf(fileName)  # 生成的文件名称            toFile = toFileJoin(filePath, toFileName)  # 生成的文件地址            print("转换:" + fileName + "文件中...")            # 某文件出错不影响其他文件打印            try:                doc = word.Documents.Open(fromFile)                doc.SaveAs(toFile, 17)  # 生成的所有 PDF 都会在 PDF 文件夹中                print("转换到:" + toFileName + "完成")            except Exception as e:                print(e)            # 关闭 Word 进程        print("所有 Word 文件已打印完毕")        print("结束 Word 进程...\n")        doc.Close()        doc = None        word.Quit()        word = None    except Exception as e:        print(e)    finally:        gc.collect()# Exceldef excel2Pdf(filePath, excels):    # 如果没有文件则提示后直接退出    if (len(excels) < 1):        print("\n【无 Excel 文件】\n")        return    # 开始转换    print("\n【开始 Excel -> PDF 转换】")    try:        print("打开 Excel 进程中...")        excel = win32com.client.Dispatch("Excel.Application")        excel.Visible = 0        excel.DisplayAlerts = False        wb = None        ws = None        for i in range(len(excels)):            print(i)            fileName = excels[i]  # 文件名称            fromFile = os.path.join(filePath, fileName)  # 文件地址            print("转换:" + fileName + "文件中...")            # 某文件出错不影响其他文件打印            try:                wb = excel.Workbooks.Open(fromFile)                for j in range(wb.Worksheets.Count):  # 工作表数量,一个工作簿可能有多张工作表                    toFileName = addWorksheetsOrder(fileName, j + 1)  # 生成的文件名称                    toFile = toFileJoin(filePath, toFileName)  # 生成的文件地址                    ws = wb.Worksheets(j + 1)  # 若为[0]则打包后会提示越界                    ws.ExportAsFixedFORMat(0, toFile)  # 每一张都需要打印                    print("转换至:" + toFileName + "文件完成")            except Exception as e:                print(e)        # 关闭 Excel 进程        print("所有 Excel 文件已打印完毕")        print("结束 Excel 进程中...\n")        ws = None        wb.Close()        wb = None        excel.Quit()        excel = None    except Exception as e:        print(e)    finally:        gc.collect()# PPTdef ppt2Pdf(filePath, ppts):    # 如果没有文件则提示后直接退出    if (len(ppts) < 1):        print("\n【无 PPT 文件】\n")        return    # 开始转换    print("\n【开始 PPT -> PDF 转换】")    try:        print("打开 PowerPoint 进程中...")        powerpoint = win32com.client.Dispatch("PowerPoint.Application")        ppt = None        # 某文件出错不影响其他文件打印        for i in range(len(ppts)):            print(i)            fileName = ppts[i]  # 文件名称            fromFile = os.path.join(filePath, fileName)  # 文件地址            toFileName = changeSufix2Pdf(fileName)  # 生成的文件名称            toFile = toFileJoin(filePath, toFileName)  # 生成的文件地址            print("转换:" + fileName + "文件中...")            try:                ppt = powerpoint.Presentations.Open(fromFile, WithWindow=False)                if ppt.Slides.Count > 0:                    ppt.SaveAs(toFile, 32)  # 如果为空则会跳出提示框(暂时没有找到消除办法)                    print("转换至:" + toFileName + "文件完成")                else:                    print("(错误,发生意外:此文件为空,跳过此文件)")            except Exception as e:                print(e)        # 关闭 PPT 进程        print("所有 PPT 文件已打印完毕")        print("结束 PowerPoint 进程中...\n")        ppt.Close()        ppt = None        powerpoint.Quit()        powerpoint = None    except Exception as e:        print(e)    finally:        gc.collect()# 修改后缀名def changeSufix2Pdf(file):    return file[:file.rfind('.')] + ".pdf"# 添加工作簿序号def addWorksheetsOrder(file, i):    return file[:file.rfind('.')] + "_工作表" + str(i) + ".pdf"# 转换地址def toFileJoin(filePath, file):    return os.path.join(filePath, 'pdf', file[:file.rfind('.')] + ".pdf")# 开始程序print("====================程序开始====================")print(    "【程序功能】将目标路径下内所有的 ppt、excel、word 均生成一份对应的 PDF 文件,存在新生成的 pdf 文件夹中(需已经安装office,不包括子文件夹)")print(    "注意:若某 PPT 和 Excel 文件为空,则会出错跳过此文件。若转换 PPT 时间过长,请查看是否有报错窗口等待确认,暂时无法彻底解决 PPT 的窗口问题(为空错误已解决)。在关闭进程过程中,时间可能会较长,十秒左右,请耐心等待。")# 需要转换的文件路径# filePath = input("输入目标路径:(若为当前路径:" + os.getcwd() + ",请直接回车)\n")filePath = "D:\Pycharmproject2023\code_test_project\shan_test\data"# 目标路径,若没有输入路径则为当前路径if (filePath == ""):    filePath = os.getcwd()# 将目标文件夹所有文件归类,转换时只打开一个进程words = []ppts = []excels = []for fn in os.listdir(filePath):    if fn.endswith(('.doc', 'docx')):        words.append(fn)    if fn.endswith(('.ppt', 'pptx')):        ppts.append(fn)    if fn.endswith(('.xls', 'xlsx')):        excels.append(fn)# 调用方法print("====================开始转换====================")# 保存路径:新建 pdf 文件夹,所有生成的 PDF 文件都放在里面folder = filePath + '\\pdf\\'if not os.path.exists(folder):    os.makedirs(folder)word2Pdf(filePath, words)excel2Pdf(filePath, excels)ppt2Pdf(filePath, ppts)print("====================转换结束====================")print("\n====================程序结束====================")# os.system("pause")

三、实践效果

 大家可以自己在本地新建几个文件,试试效果,体验一下把!

参考链接:http://blog.csdn.net/qq_57187936/article/details/125606165

来源地址:https://blog.csdn.net/weixin_40547993/article/details/131741258

--结束END--

本文标题: Python批量实现Word、EXCLE、PPT转PDF文件

本文链接: https://www.lsjlt.com/news/417769.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python批量实现Word、EXCLE、PPT转PDF文件
     一、绪论背景         在日常办公和文档处理中,有时我们需要将多个Word文档、Excel表格或PPT演示文稿转换为PDF文件。将文档转换为PDF格式的好处是它可以保留文档的布局和格式,并且可以在不同平台上进行方便的查看和共享。 ...
    99+
    2023-09-25
    win32com 办公自动化 批量实现
  • Python一键实现PDF文档批量转Word
    目录实现效果环境准备代码实现无论是在工作还是学习当中,大家都会遇到这样一个问题,将“PDF当中的内容(文本和图片)转换为Word的格式”,也就是说从只读转换成...
    99+
    2022-11-11
  • 基于pdf2docx模块怎么用Python实现批量将PDF转Word文档
    这篇“基于pdf2docx模块怎么用Python实现批量将PDF转Word文档”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2023-07-06
  • 如何利用Python代码批量将PDF文件转为Word格式
    本篇文章给大家分享的是有关如何利用Python代码批量将PDF文件转为Word格式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在日常工作或学习中,经常会遇到这样的无奈:“小任...
    99+
    2023-06-17
  • python怎么实现批量md转word
    这篇文章主要介绍“python怎么实现批量md转word”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python怎么实现批量md转word”文章能帮助大家解决问题。前言;最近想要实现批量将mard...
    99+
    2023-06-29
  • vue预览pdf、word、xls、ppt、txt文件的实现方法
    目录说下方法1. 在页面内加个 iframe2. word、xls、ppt这些文件3. 最终效果首先说下为什么要分享:网上教的都是特么的啥玩意!!!真特么垃圾,各种方法说不到点子上!...
    99+
    2022-11-13
  • Python编程批量实现md5加密pdf文件
    Python编程实现批量md5加密pdf文件今天在某公众号看到一个关于pdf文件加密模块的介绍,突然有了一个想法,编写一个批量加密某目录下的所有pdf文件。结合md5加密和文件查找等...
    99+
    2022-11-10
  • 基于pdf2docx模块Python实现批量将PDF转Word文档的完整代码教程
    PDF文件是一种常见的文档格式,但是在编辑和修改时不太方便,因为PDF本质上是一种静态的文档格式。 因此,有时候我们需要将PDF文件转换成Word格式,以便更好地编辑和修改文档。在本...
    99+
    2023-05-15
    pdf2docx模块 Python PDF Python PDF转Word
  • python 针对在子文件夹中的md文档实现批量md转word
    前言; 最近想要实现批量将mardown文档转化为word。网上有很多解决的方法,但是自己保存的md文档在不同的文件夹,而大部分只能实现同一文件夹内的转换,因此稍加改进,得出以下功能...
    99+
    2022-11-10
  • Python实现批量向PDF文件添加中文水印
    目录前言实现步骤完整代码前言 可以通过设置批量PDF文件所在的路径及需要添加的水印名称可以实现批量添加PDF水印的效果。 实现思路是这样的,通过在批量PDF文件路径下面生成一个带有水...
    99+
    2022-11-13
  • Python批量爬虫下载PDF文件代码实现
    本文的背景是:大学关系很好的老师问我能不能把Excel中1000个超链接网址对应的pdf文档下载下来。虽然可以手动一个一个点击下载,但是这样太费人力和时间了。我想起了之前的爬虫经验,给老师分析了一下可...
    99+
    2023-09-27
    python 爬虫 pdf
  • js前端实现word excel pdf ppt mp4图片文本等文件预览
    目录前言实现方案docx文件实现前端预览代码实现实现效果pdf实现前端预览代码实现实现效果excel实现前端预览代码实现实现效果pptx的前端预览实现效果总结前言 因为业务需要,很多...
    99+
    2022-11-13
  • python小脚本——批量将PDF文件转换成图片
    语言:python 3 用法:选择PDF文件所在的目录,点击 确定 后,自动将该目录下的所有PDF转换成单个图片,图片名称为:   pdf文件名.page_序号.jpg 如运行中报错,需要自行根据报错内容按照缺失的库 例如: #安装库pip...
    99+
    2023-09-10
    python
  • Python办公自动化Word转Excel文件批量处理
    目录前言首先使用Python将Word文件导入row和cell解析所需内容内层解析循环前言 大家好,今天有一个公务员的小伙伴委托我给他帮个忙,大概是有这样一份Word(由于...
    99+
    2022-11-11
  • Python实现将Excel内容批量导出为PDF文件
    目录序言实现代码序言 上一篇咱们实现了多个表格数据合并到一个表格,本次咱们来学习如何将表格数据分开导出为PDF文件。 部分数据 然后需要安装一下这个软件 wkhtmltopdf 不...
    99+
    2022-11-10
  • Python实现yaml与json文件批量互转
    目录1. 安装yaml库2. yaml转json3. json转yaml4. 批量将yaml与json文件互相转换1. 安装yaml库 想要使用python实现yaml与json格式...
    99+
    2022-11-11
  • Python怎么实现批量向PDF文件添加中文水印
    本文小编为大家详细介绍“Python怎么实现批量向PDF文件添加中文水印”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么实现批量向PDF文件添加中文水印”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-29
  • Python实现Word文档样式批量处理
    这里批量处理word文档的操作主要是通过python-docx非标准库实现的,通过定位到文档对象、再到段落、最后到一行文本从而完成针对文字对象的处理。 使用pip的方式安装pyth...
    99+
    2022-11-11
  • Python怎么实现将Excel内容批量导出为PDF文件
    本篇内容介绍了“Python怎么实现将Excel内容批量导出为PDF文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!序言部分数据然后需要安...
    99+
    2023-06-30
  • 利用Python实现快速批量转换HEIC文件
    目录1. 前言2. 准备3. 实战4.最后1. 前言 最近打算做一批日历给亲朋好友,但是从 iPhone 上导出的照片格式是 HEIC 格式,而商家的在线制作网站不支持这种图片格式 ...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作