在日常工作中,我们经常需要处理PPT中的图片,有时需要批量提取,有时需要将多张图片合并成特定布局。本文将介绍如何使用Python开发一个图形界面工具,实现PPT图片提取和九宫格合并功能。
C:\pythoncode\new\pptextractandmerge.py
全部代码
import wx
import os
from pptx import Presentation
from PIL import Image
import io
class MainFrame(wx.Frame):
def __init__(self):
super().__init__(parent=None, title='PPT图片提取与合并工具', size=(600, 400))
self.ppt_path = ''
self.output_dir = ''
self.InitUI()
def InitUI(self):
panel = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
# PPT选择
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
self.ppt_text = wx.TextCtrl(panel)
choose_btn = wx.Button(panel, label='选择PPT')
choose_btn.Bind(wx.EVT_BUTTON, self.OnChoosePPT)
hbox1.Add(self.ppt_text, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
hbox1.Add(choose_btn, flag=wx.ALL, border=5)
# 输出目录选择
hbox2 = wx.BoxSizer(wx.HORIZONTAL)
self.dir_text = wx.TextCtrl(panel)
dir_btn = wx.Button(panel, label='选择输出目录')
dir_btn.Bind(wx.EVT_BUTTON, self.OnChooseDir)
hbox2.Add(self.dir_text, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
hbox2.Add(dir_btn, flag=wx.ALL, border=5)
# 提取按钮
extract_btn = wx.Button(panel, label='提取图片')
extract_btn.Bind(wx.EVT_BUTTON, self.OnExtract)
# 合并设置
hbox3 = wx.BoxSizer(wx.HORIZONTAL)
row_label = wx.StaticText(panel, label='行数:')
self.row_text = wx.TextCtrl(panel, value='3'