使用Python开发PPTX压缩工具

引言

在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储。为了应对这一问题,我们可以使用Python的wxPython图形界面库结合python-pptxPillow,开发一个简单的PPTX压缩工具。本文将详细介绍如何实现这一功能。
C:\pythoncode\new\compresspptx.py

全部代码

import wx
import os
from pptx import Presentation
from PIL import Image
import io

class CompressorFrame(wx.Frame):
    def __init__(self):
        super().__init__(parent=None, title='PPTX压缩工具')
        self.panel = wx.Panel(self)
        self.create_ui()
        
    def create_ui(self):
        vbox = wx.BoxSizer(wx.VERTICAL)
        
        # 文件选择部分
        hbox1 = wx.BoxSizer(wx.HORIZONTAL)
        self.file_path = wx.TextCtrl(self.panel, size=(300, -1))
        browse_btn = wx.Button(self.panel, label='选择文件')
        browse_btn.Bind(wx.EVT_BUTTON, self.on_browse)
        hbox1.Add(self.file_path, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
        hbox1.Add(browse_btn, flag=wx.ALL, border=5)
        
        # 压缩按钮
        compress_btn = wx.Button(self.panel, label='开始压缩')
        compress_btn.Bind(wx.EVT_BUTTON, self.on_compress)
        
        # 进度条
        self.progress = wx.Gauge(self.panel, range=100, size=(400, 25))
        
        # 状态文本
        self.status_text = wx.StaticText(self.panel, label="")
        
        vbox.Add(hbox1, flag=wx.EXPAND|wx.ALL, border=5)
        vbox.Add(compress_btn, flag=wx.ALIGN_CENTER|wx.ALL, border=5)
        vbox.Add(self.progress, flag=wx.EXPAND|wx.ALL, border=5)
        vbox.Add(self.status_text, flag=wx.EXPAND|wx.ALL, border=5)
        
        self.panel.SetSizer(vbox)
        self.Fit()
        
    def on_browse(self, event):
        with wx.FileDialog(self, "选择PPTX文件", wildcard="PowerPoint files (*.pptx)|*.pptx",
                         style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) as fileDialog:
            if fileDialog.ShowModal() == wx.ID_CANCEL:
                return
            path = fileDialog.GetPath()
            path = os.<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值