用Python一键生成PNG图片的PowerPoint幻灯片

在当今的商业环境中,PowerPoint演示是展示和传递信息的常用方式。然而,手动将大量图像插入到幻灯片中往往是一项乏味且耗时的工作。但是,通过Python编程,我们可以轻松自动化这个过程,节省时间和精力。

C:\pythoncode\new\folderTOppt.py

在本文中,我将介绍如何使用Python、wxPython和python-pptx库编写一个脚本,将指定文件夹中的所有PNG图像逐一插入到一个新的PowerPoint演示文稿中,每张图像占据一个全尺寸幻灯片。无需手动操作,只需运行这个脚本,就可以快速生成包含所有PNG图像的演示文稿。

第一步:安装所需的Python库
要运行此脚本,我们需要安装以下Python库:

- wxPython: 用于创建图形用户界面(GUI),让用户选择图像文件夹。
- python-pptx: 用于创建和操作PowerPoint演示文稿。

您可以使用Python的包管理器pip来安装这些库:

pip install wxpython python-pptx

第二步:编写Python脚本
以下是完整的Python脚本代码:

import wx
import os
import pptx
from pptx.util import Inches, Pt

# 创建wxPython应用程序
app = wx.App()

# 创建文件夹选择对话框
dialog = wx.DirDialog(None, "选择文件夹", style=wx.DD_DEFAULT_STYLE)
if dialog.ShowModal() == wx.ID_OK:
    folder_path = dialog.GetPath()
else:
    print("未选择有效的文件夹")
    exit()

dialog.Destroy()

# 创建新的PowerPoint演示文稿
ppt = pptx.Presentation()

# 获取幻灯片的宽度和高度
slide_width = int(ppt.slide_width.inches * 914400)  # 将英寸转换为pptx单位
slide_height = int(ppt.slide_height.inches * 914400)  # 将英寸转换为pptx单位

# 遍历文件夹中的所有PNG文件
for filename in os.listdir(folder_path):
    if filename.endswith(".png"):
        # 获取图像文件路径
        image_path = os.path.join(folder_path, filename)

        # 创建新的幻灯片
        slide = ppt.slides.add_slide(ppt.slide_layouts[6])  # 使用空白布局

        # 在幻灯片中添加图像
        picture = slide.shapes.add_picture(image_path, Inches(0), Inches(0), height=slide_height)

        # 计算等比例缩放后的图像大小
        picture_width = picture.width
        picture_height = picture.height
        max_picture_width = slide_width - int(Inches(1).inches * 914400)  # 减去1英寸边距
        max_picture_height = slide_height - int(Inches(1).inches * 914400)  # 减去1英寸边距
        scale_ratio = min(max_picture_width / picture_width, max_picture_height / picture_height)
        new_picture_width = int(picture_width * scale_ratio)
        new_picture_height = int(picture_height * scale_ratio)

        # 设置图像的大小和位置
        picture.left = (slide_width - new_picture_width) // 2
        picture.top = (slide_height - new_picture_height) // 2
        picture.width = new_picture_width
        picture.height = new_picture_height

# 保存PowerPoint演示文稿
save_dialog = wx.FileDialog(None, "保存PowerPoint文件", wildcard="PowerPoint文件 (*.pptx)|*.pptx", style=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)
if save_dialog.ShowModal() == wx.ID_OK:
    ppt_file_path = save_dialog.GetPath()
    ppt.save(ppt_file_path)
else:
    print("未选择有效的保存路径")

save_dialog.Destroy()

让我们逐步解释这段代码:

1. 首先,我们导入所需的Python库:wxPython用于创建GUI,os用于文件操作,pptx用于创建和操作PowerPoint文件。

2. 然后,我们创建一个wxPython应用程序和一个文件夹选择对话框,让用户选择包含PNG图像的文件夹。

3. 接下来,我们创建一个新的PowerPoint演示文稿,并获取幻灯片的宽度和高度(以pptx单位表示)。

4. 我们遍历选定文件夹中的所有PNG文件。对于每个PNG文件:
   - 我们创建一个新的幻灯片,使用空白布局。
   - 我们在幻灯片中添加该PNG图像,并根据图像的宽高比,按等比例缩放图像以适应幻灯片大小,同时保留1英寸的边距。
   - 我们将缩放后的图像居中显示在幻灯片上。

5. 最后,我们打开另一个文件对话框,让用户选择保存PowerPoint文件的位置,并将演示文稿保存到指定位置。

就是这样!通过运行这个Python脚本,您可以轻松地将一个文件夹中的所有PNG图像插入到一个新的PowerPoint演示文稿中,每张图像占据一个全尺寸幻灯片。这不仅节省了大量时间,而且确保了所有图像的一致性和专业外观。

无论您是需要准备产品演示、培训材料还是图片集锦,这个脚本都将为您提供极大的便利。尝试一下吧,让Python释放您的工作效率!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值