【办公类-102-02】党课PPT(公众号图片下载并批量制作PPT、工具:deepseek)

背景需求

领导要下载党课PPT

打开一看,没有链接地址,但是PPT的每页图片

很多人有下载需求,找不到下载路径

我决定下载公众号的图片,编号。然后用Python来生成给一个PPT

第一步:用UIBOT下载PPTX的每一张图片(间隔等待时间不同)

Dim sRet,temp,sPath,sText,bRet,objPoint,dRet,iRet
Rem 找到第一张图片并点击打开

Rem 另存一次指定路径

Rem 右箭头换下一张,准备下载

Rem 预估张数,宁多不要少
name=Dialog.InputBox("文件夹名称","Laiye Automation","",false)
File.CreateFolder('''C:\Users\jg2yXRZ\OneDrive\桌面\'''&name)
sPath = File.ParentPath('''C:\Users\jg2yXRZ\OneDrive\桌面\'''&name)
TracePrint(sPath+'\\'+name)
路径 = sPath+'\\'+name


For a = 0 To 0 step 1
随机秒数=Rnd()
随机间 = 随机秒数*1000
随机间隔秒=CInt(随机间)
TracePrint(随机间隔秒)
Mouse.Move(954, 519, false,{"iDelayAfter": 100, "iDelayBefore": 100})
Mouse.Click("right", "click", [],{"iDelayAfter": 100, "iDelayBefore": 100})

Mouse.Move(1000, 569, false,{"iDelayAfter": 100, "iDelayBefore": 100})
Mouse.Click("left", "click", [],{"iDelayAfter": 100, "iDelayBefore": 100})




Delay(随机间隔秒)

Mouse.Move(782, 215, false,{"iDelayAfter": 100, "iDelayBefore": 100})
Mouse.Click("left", "click", [],{"iDelayAfter": 100, "iDelayBefore": 100})
Keyboard.Input(路径,{"iDelayAfter": 100, "iDelayBefore": 100, "sSimulate": "message"})

Keyboard.Press("Enter", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})
Delay(随机间隔秒)

Keyboard.InputText(@ui"窗口_微信图片_20240518195628.jpg","001",true,20,10000,{"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 500, "bSetForeground": true, "sSimulate": "message", "bValidate": false, "bClickBeforeInput": false})
Delay(随机间隔秒)
Mouse.Action(@ui"窗口_保存(S)2","left","click",10000,{"bContinueOnError": false, "iDelayAfter": 100, "iDelayBefore": 100, "bSetForeground": true, "sCursorPosition": "Center", "iCursorOffsetX": 0, "iCursorOffsetY": 0, "sKeyModifiers": [],"sSimulate": "simulate", "bMoveSmoothly": false})

Keyboard.Press("Right", "press", [],{"iDelayAfter": 100, "iDelayBefore": 100, "sSimulate": "simulate"})
Next
For i = 2 To 100 step 1
// objPoint = LocalOCR.Find(@ui"窗口_桌面1", {"x":0,"y":0,"width":0,"height":0},"", "instr", 1, 10000, {"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":true})
// bRet = Text.Exists(@ui"窗格2","已是最后一张","instr",1,10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":true})
// If bRet=1 
// Break

// ElseIf bRet=1


// End If











Mouse.Move(954, 519, false,{"iDelayAfter": 100, "iDelayBefore": 100})

Mouse.Click("right", "click", [],{"iDelayAfter": 100, "iDelayBefore": 100})
Mouse.Move(1000, 569, false,{"iDelayAfter": 100, "iDelayBefore": 100})


Mouse.Click("left", "click", [],{"iDelayAfter": 100, "iDelayBefore": 100})
Delay(3000)
Keyboard.Input(Format("%03d",i),{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "message"})
Delay(随机间隔秒)
Mouse.Action(@ui"窗口_保存(S)2","left","click",10000,{"bContinueOnError": false, "iDelayAfter": 100, "iDelayBefore": 100, "bSetForeground": true, "sCursorPosition": "Center", "iCursorOffsetX": 0, "iCursorOffsetY": 0, "sKeyModifiers": [],"sSimulate": "simulate", "bMoveSmoothly": false})

Keyboard.Press("Right", "press", [],{"iDelayAfter": 100, "iDelayBefore": 100, "sSimulate": "simulate"})
Next

第二步:用deepseek写一个Python制作PPTX的代码

测试一:用手动-插入相册的方法制作PPTX。会生成两个PPTX,要删除和修改文件名、但是插入的图片是满格16:9的

测试二:如果没有说明设置16:9的比例,并且撑满画面,PPT就默认4:3,插入图片是原始大小

测试三:说明PPT是16:9,且插入图片必须撑满画布

最终代码展示

'''
下载微信公众号图片,用Python代码直接导入PPTX 16:9
deepseek、阿夏
20250403

'''
import os
from pptx import Presentation
from pptx.util import Inches
from PIL import Image

def create_ppt_from_images(folder_path, output_pptx):
    # 创建一个16:9的演示文稿
    prs = Presentation()
    prs.slide_width = Inches(10)  # 16:9的宽度
    prs.slide_height = Inches(5.625)  # 16:9的高度
    
    # 获取文件夹中的所有图片文件
    image_files = [f for f in os.listdir(folder_path) 
                  if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]
    
    if not image_files:
        print(f"在文件夹 {folder_path} 中没有找到图片文件")
        return
    
    for img_file in image_files:
        img_path = os.path.join(folder_path, img_file)
        
        try:
            # 使用PIL检查图片是否有效
            with Image.open(img_path) as img:
                # 添加一个空白幻灯片
                slide = prs.slides.add_slide(prs.slide_layouts[6])  # 使用空白布局
                
                # 插入图片并使其填满整个幻灯片
                left = top = 0
                pic = slide.shapes.add_picture(img_path, left, top, 
                                             width=prs.slide_width, 
                                             height=prs.slide_height)
        except Exception as e:
            print(f"无法处理图片 {img_file}: {e}")
            continue
    
    # 保存PPTX文件
    prs.save(output_pptx)
    print(f"成功创建PPTX文件: {output_pptx},包含 {len(image_files)} 张图片")

# 使用示例
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\123'
folder_path = path+r'\png'# 图片文件夹路径
output_pptx =  path + r'\严守党纪国法,共筑教育净土333.pptx'   # 输出的PPTX文件名

create_ppt_from_images(folder_path, output_pptx)


手动添加一个文本框,便于修改学校、发言人、日期

发给领导

后续我希望用Python也写一个下载微信图片的工具,以便能够二合一,快速下载图片和制作一个PPTX

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值