"""
生成PPT幻灯片程序.py
本程序把images下面的0.png,1.png,2.png.....都添加到一个PPT幻灯片文件中.
pptx模块安装:pip3 install python-pptx
"""
import os
import pptx
from pptx.util import Inches
from random import randint,choice
letters = [chr(x) for x in range(48,127)]
def autostring():
"""自动生成一个字符串"""
s = ''.join([choice(letters) for i in range(1,randint(10,1000))])
return s
def make_images_pptx(image_path,out_path):
"""
生成幻灯片文件,插入很多图片后加上随机字符串防大数据识别发同一文件
"""
pptFile = pptx.Presentation()
# 交换纵横比,相当于设置成纵向幻灯片
pptFile.slide_width,pptFile.slide_height = pptFile.slide_height,pptFile.slide_width
# 按图片编号顺序导入
for index in range(15):
fn = path + os.sep + str(index) + ".png"
# 添加一个幻灯片
slide = pptFile.slides.add_slide(pptFile.slide_layouts[1])
# 命令格式: add_picture(image_file,left,top,width,height)
slide.shapes.add_picture(fn, Inches(0), Inches(0), Inches(7.5), Inches(10))
slide= pptFile.slides.add_slide(pptFile.slide_layouts[1])
body_shape = slide.shapes.placeholders # body_shape为本页ppt中所有shapes
body_shape[0].text = '请忽略以下\n自动生成内容' # 在第一个文本框中添加文字
body_shape[1].text = autostring() # 在第二个文本框中文字框架内添加文字
pptFile.save(out_path)
path = os.getcwd() + os.sep + "images"
out = os.getcwd() + os.sep + "out" + os.sep
for i in range(100):
make_images_pptx(path,f'{out}Python创意编程汇编之turtle篇.pptx_{i}.pptx')