引言
在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储。为了应对这一问题,我们可以使用Python的wxPython图形界面库结合python-pptx和Pillow,开发一个简单的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.<

最低0.47元/天 解锁文章
1162

被折叠的 条评论
为什么被折叠?



