问题描述
临近年终,又是忙着写总结作PPT汇报的时间,如果能用上精美应景的PPT模板,也能为汇报工作增色不少。网络上提供的成套PPT模板压缩文件,通常是文字介绍,如果借助于缩略图,那么会让我们有选择性地下载适合自己所需的PPT模板,这样节省不少时间,今天我们就看看如何利用Python的MSS第三方库来为PPT文件自动生成“幻灯片浏览视图”下的缩略图图片。
本文以“演示星球”提供的高质,限时免费的PPT模板为演示对象
具体实现
- 首先我们在Office中设置打开PPT文件时的默认视图为“幻灯片浏览”,具体步骤如下:
-
默认情况下, PowerPoint 普通视图打开,显示缩略图、备注和幻灯片视图。 单击“文件”>“选项”>“高级”。
-
在"显示"下,在"使用此视图打开所有文档"列表中,选择要设置为新默认值的视图,此处我们选择“幻灯片浏览”,然后单击"确定"。
-
该设置是为了Python程序自动打开该文件时会以“幻灯片浏览”方式显示。
- 在放置有PPT文件的文件夹中运行如下py文件,即可生成每张PPT的缩略图图片。
import os
import mss
import mss.tools
import time
path='.'
for filename in os.listdir(path):
if filename.endswith(".pptx") and not ('~$') in filename:
print(filename)
print(os.path.join(path, filename))
print()
realpath=os.path.realpath(filename)
os.startfile(realpath)
time.sleep(3)
with mss.mss() as sct:
monitor_number = 1 #设置程序打开ppt文件时所在显示器编号,如果是多显示器,在第二个显示器打开,那么此处值为2
mon = sct.monitors[monitor_number]
# 如下参数设置要截图的PPT区域尺寸,可根据实际情况调整
monitor = {
"top": mon["top"] + 100,
"left": mon["left"],
"width": mon["width"],
"height": mon["height"]-170,
"mon": monitor_number,
}
output = "{}.png".format(filename)#图片文件名与PPT文件名相同
sct_img = sct.grab(monitor)
mss.tools.to_png(sct_img.rgb, sct_img.size, output=output)
# print(output)
# continue
else:
continue
运行结果效果图(以三个PPT文件为例)
关注公众号 “乐享Python”,查阅教育资源干货。