Python自动截图PPT浏览视图

问题描述

临近年终,又是忙着写总结作PPT汇报的时间,如果能用上精美应景的PPT模板,也能为汇报工作增色不少。网络上提供的成套PPT模板压缩文件,通常是文字介绍,如果借助于缩略图,那么会让我们有选择性地下载适合自己所需的PPT模板,这样节省不少时间,今天我们就看看如何利用Python的MSS第三方库来为PPT文件自动生成“幻灯片浏览视图”下的缩略图图片。

本文以“演示星球”提供的高质,限时免费的PPT模板为演示对象

具体实现

  1. 首先我们在Office中设置打开PPT文件时的默认视图为“幻灯片浏览”,具体步骤如下:
  • 默认情况下, PowerPoint 普通视图打开,显示缩略图、备注和幻灯片视图。 单击“文件”>“选项”>“高级”。

  • 在"显示"下,在"使用此视图打开所有文档"列表中,选择要设置为新默认值的视图,此处我们选择“幻灯片浏览”,然后单击"确定"。

  • 该设置是为了Python程序自动打开该文件时会以“幻灯片浏览”方式显示。

  1. 在放置有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”,查阅教育资源干货。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值