【Python教程】小白也能看懂的PPT批量转PDF代码

Python简介

Python数据类型

Python不像C++需要预先对一个变量进行声明并指定类型。Python的变量的类型取决于它被赋值成了什么类型。
举个例子,如果我们想用一个变量来记录一个字符串:

input_ppt="E:\Desktop\myppt.pptx"

好了,input_ppt这个变量就被我们创建了,而且变量的值就是“E:\Desktop\myppt.pptx”,也就是我们的ppt所在的文件路径,可以根据你自己的ppt的位置来修改。
注意,Python的语句末尾是不用写任何符号的,不像C++。
如果我们想要验证input_ppt这个变量是不是我们赋予的值,可以打印试试看:

input_ppt="E:\Desktop\myppt.pptx"
print(input_ppt)

同理,我们可以定义想要输出的pdf的路径的字符串变量:

input_ppt="E:\Desktop\myppt.pptx"
output_pdf="E:\Desktop\mypdf.pdf"

变量的名称可以随意取,这里只做演示。

Python基本语法

Python是面向对象的语言,首先需要从一个类(Class)来定义一个对象(Object)。举个栗子,类是图纸,类中包含了对象具有的变量和函数。对象是根据图纸造出来的产品。
Python的对象可以自己定义,也可以从它丰富的库中直接获取。
这里我们需要用的comtypes.client类,这个类可以用于我们后续将文件以ppt的类型打开(在电脑中都是以2进制存储的,打开一个文件需要使用对应类型的函数)。
在python代码的开头,加入

import comtypes.client

就可以直接使用comtypes.client对象啦。

我们需要调用comtypes.client的CreateObject方法,来创建一个"Powerpoint.Application"应用程序。
在comtypes.client后面加"."即可继续写需要调用的函数。现在我们的代码变成了:

import comtypes.client
input_ppt="E:\Desktop\myppt.pptx"
output_pdf="E:\Desktop\mypdf.pdf"
powerpoint = comtypes.client.CreateObject("Powerpoint.Application")

注意,这里的powerpoint只是ppt应用程序,不是我们要转化的ppt文件哦。

继续进军

至此,我们了解了一些Python的基本变量和语句方法,知道了如何调用对象中的函数。
接下来使用我们得到的powerpoint应用程序打开我们要转换的ppt。

myppt= powerpoint.Presentations.Open(input_ppt)

使用我们的ppt文件对象的ExportAsFixedFormat函数,将myppt转存为pdf,保存路径为之前定义的输出路径out_pdf。

myppt.ExportAsFixedFormat(output_pdf, FixedFormatType=2,OutputType=4)

这里的FixedFormatType=2是指ppt存储的格式为pdf。
在这里插入图片描述
在这里插入图片描述
由于我们要输出为6页讲义版,需要对OutputType进行设置:
在这里插入图片描述
OutputType=4就好ok了。

powerpoint.Quit()

然后再把ppt应用程序关掉。

单个ppt转pdf的完整代码

import comtypes.client#导入需要用到的库

input_ppt="E:\Desktop\myppt.pptx"#输入的文件
output_pdf="E:\Desktop\mypdf.pdf"#输出的文件

powerpoint = comtypes.client.CreateObject("Powerpoint.Application")#打开ppt应用程序
myppt= powerpoint.Presentations.Open(input_ppt)#用ppt应用程序打开我们的ppt文件

myppt.ExportAsFixedFormat(output_pdf, FixedFormatType=2,OutputType=4)#转存我们的ppt文件到pdf,6页讲义版
myppt.close()#关闭当前ppt
powerpoint.Quit()#关掉ppt程序

Python的注释是加入“#”号,可以注释一行的文字,不影响运行哦。

接下来就是批量处理,在python语言里也可以使用for循环和if语句:

import comtypes.client#导入需要用到的库
import os#这里需要用到一个新的库中的对象,我们要需要获得操作系统(operating system)的对象


input_path="E:\Desktop"#输入的文件夹
output_path="E:\Desktop"#输出的文件夹,这俩可以不一样哈

input_files = os.listdir(input_path)#获取输入的文件夹里所有的ppt,得到了一个ppt列表
powerpoint = comtypes.client.CreateObject("Powerpoint.Application")#打开ppt应用程序

for input_file_name in input_files:#循环遍历列表里每一个ppt
    if not input_file_name.lower().endswith((".ppt", ".pptx")):#略过末尾的文件名不是ppt的文件
      continue#这里的continue是跳过下面的代码,进入下一次循环的意思
    input_file_path = os.path.join(input_path, input_file_name)#把输入的文件名组合一下
    print(input_file_path)
   
    myppt= powerpoint.Presentations.Open(input_file_path)#用ppt应用程序打开我们的ppt文件
    file_name = os.path.splitext(input_file_name)[0]#获取ppt的名称,用splitext函数切割input_file_name,并访问第0个元素,即去“my.pptx”,去掉保留“my”
    output_file_path = os.path.join(output_path, file_name + ".pdf")#把输出文件名组合一下
    myppt.ExportAsFixedFormat(output_file_path, FixedFormatType=2,OutputType=4)#转存我们的ppt文件到pdf
    myppt.close()#关闭当前ppt
    
powerpoint.Quit()#关掉ppt程序

在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值