英文取名

V1

2022/08/06阅读:10主题:默认主题

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”,查阅教育资源干货。

分类:

后端

标签:

Python

作者介绍

英文取名
V1