ppt-pandora

PPT完整制作流程:从素材收集、大纲规划,到图片搜索/裁剪/插入、文字排版调整(字体大小/行间距/位置)、 表格处理、整体视觉评估,直到最终验证。支持红白风格等专业PPT的全流程制作。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ppt-pandora" with this command: npx skills add ameylover/ppt-pandora

PPT完整制作流程

一、素材收集与规划

1.1 内容来源优先级

  1. 权威官方报道(gov.cn、news.cn、people.com.cn)— 政策、数据、事件
  2. 证券研究所报告 — 产业架构图、行业数据图表(极其权威专业)
  3. Pexels免费图库 — 通用场景照片
  4. AI生成图片 — 无版权风险,但质量不稳定

1.2 贾老师找图法(内容→来源→关联→配图)

  1. 看PPT页面的核心主题和引用内容(政策引领?技术趋势?行业案例?)
  2. 搜索引用的原话,找到权威官方报道
  3. 从报道里找关联事件(上下文提到的会议/政策/人物/数据)
  4. 用关联事件去搜对应的图片

为什么有效:图片和内容有逻辑关联,不是随便配的免费图。

示例

  • P3 讲"政策引领+习主席指示" → 搜习主席原话 → 找到发改委文章 → 文章提到"二十届三中全会" → 搜该会议照片
  • P4 讲"十五五规划+人工智能+" → 搜十五五报道 → gov.cn文章有李强主持编制会议照片
  • P6 讲"中国AI产业" → 搜"AI产业层级架构" → 华西证券研究所报告图片

1.3 特殊图片渠道

  • gov.cn图片路径./W0xxxxxxxxxx_ORIGIN.JPG(拼接完整URL)
  • 人民网图片路径/NMediaFile/xxxxx/MAINxxxxxxxx.jpg
  • 证券研究所图片:搜索"XX证券 AI产业"或"XX证券 行业图谱"

二、图片裁剪与适配

2.1 核心原则

  1. 绝不拉伸,保持原始宽高比
  2. 裁剪时保留重要内容(人脸、文字不能切掉)
  3. 不重要部分裁切(下半身、留白、背景)
  4. 卡片圆弧角 → 必须留边距(≥0.15英寸)

2.2 裁剪策略速查表

场景策略
竖图→横卡片裁掉不重要部分(下半身/背景),保留上半部分,居中放置
文字在底部裁上方留白,让文字靠上
人脸照片用image工具定位脸坐标,以脸为中心裁剪
横图→横卡片从上下等比裁切,保持居中
比例接近但不匹配微调裁切量,尽量保留主要内容
图片比预留区域小按比例缩放后居中放置,四周留白,绝不拉伸

2.3 边距规范

边距大小适用场景
0.15英寸最小值,刚好避免直角碰圆弧
0.3英寸通用推荐值
0.5英寸需要明显留白时

2.4 Python代码示例

from pptx.util import Inches

# 图片在卡片区域内带边距
card_left, card_top, card_w, card_h = 0.8, 1.8, 5.0, 2.5
margin = 0.15

img_left = card_left + margin
img_top = card_top + margin
img_w = card_w - 2 * margin
img_h = img_w / image_aspect_ratio  # 等比计算高度

# 居中在卡片区域内
img_top = card_top + (card_h - img_h) / 2

slide.shapes.add_picture(img_path, Inches(img_left), Inches(img_top), 
                         Inches(img_w), Inches(img_h))

三、文字排版调整

3.1 核心三要素:字体大小 + 行间距 + 文本框高度

三者必须配合调整,只改一个参数往往视觉效果不好。

场景字体大小行间距文本框高度
正文段落(填满区域)18-20pt1.5-2.0x匹配内容
数据卡片标签16pt1.0x自适应
数据卡片数值28pt1.0x自适应
数据卡片单位14pt1.0x自适应
标题24-32pt1.0x自适应

3.2 视觉评估原则

不是参数万能,是根据实际情况定的。

判断标准:

  • 文字是否填满区域(不空不挤)
  • 行间距是否让文字呼吸(1.5-2.0x适合段落)
  • 字体大小是否与区域面积匹配
  • 整体是否上下居中

3.3 主副标题合并

# 用破折号连接,解决右侧太空问题
shape.text_frame.paragraphs[0].text = f'{main_title}——{subtitle}'
# 删除旧的副标题shape
sub_shape._element.getparent().remove(sub_shape._element)

3.4 文字垂直居中(XML方式)

from pptx.oxml.ns import qn
sp = shape._element
for child in sp:
    tag = child.tag.split('}')[-1] if '}' in child.tag else child.tag
    if tag == 'txBody':
        for sub in child:
            subtag = sub.tag.split('}')[-1] if '}' in sub.tag else sub.tag
            if subtag == 'bodyPr':
                sub.set('anchor', 'ctr')  # 垂直居中

3.5 python-pptx 添加新段落

# ❌ 错误:paragraphs[3] 访问不存在的段落不会自动创建
# ✅ 正确:手动创建XML paragraph元素

from pptx.oxml.ns import qn

txBody = shape.text_frame._txBody
new_p = txBody.makeelement(qn('a:p'), {})
r = new_p.makeelement(qn('a:r'), {})
rPr = r.makeelement(qn('a:rPr'), {'lang': 'zh-CN', 'sz': '2000'})  # 20pt
t = r.makeelement(qn('a:t'), {})
t.text = '新段落内容'
r.append(rPr)
r.append(t)
new_p.append(r)
txBody.append(new_p)

四、表格处理

4.1 表格实际渲染高度 ≠ shape.height

关键教训:表格shape设的高度可能不够,内容会溢出。

# 表格有5行,每行0.6英寸 → 实际需要3.0英寸
# 如果shape.height设为2.2,内容会溢出到下面的元素
shape.height = Inches(3.0)  # 必须等于或大于内容实际需要的高度

4.2 表格与图片的间距

  • 表格底部与下方图片之间至少留 0.2-0.3英寸 间距
  • 检查方法:读取shape的top + height,计算bottom,确保不重叠

五、图片替换工作流

5.1 分段操作原则

铁律:在分段PPT上操作,不要先合并完整版再改。

原因:

  • copy.deepcopy 只复制shape的XML引用,不复制图片二进制数据
  • 合并时图片被重复嵌入,文件膨胀到20MB+
  • 分段文件只有45-50KB,操作快、发送快

5.2 正确流程

单段脚本生成 → 分段PPT → 在分段PPT里加图/调整 → 所有分段完成后 → 合并完整版

5.3 从原始generate脚本读取正确尺寸

图片占位符的尺寸要从原始生成脚本读取,而不是从合并PPT的文本标签获取。


六、Emoji处理

PowerPoint不支持Unicode emoji(🧠📚🦾等显示为方块)。

替换方案:用文字标识代替

# ❌ 错误
"🧠 大脑(推理规划)"
# ✅ 正确
"[大脑] 推理规划"

全量扫描代码

import re
emoji_pattern = re.compile('[\U0001F000-\U0001FFFF]')
for slide in prs.slides:
    for shape in slide.shapes:
        if shape.has_text_frame:
            for para in shape.text_frame.paragraphs:
                for run in para.runs:
                    if emoji_pattern.search(run.text):
                        print(f'Found emoji: {run.text}')

七、整体视觉评估

7.1 评估清单(每页修改后检查)

  • 左侧vs右侧:两侧都有内容,没有大片空白
  • 上下居中:文字在文本框内垂直居中
  • 行间距:段落行间距让文字呼吸(1.5-2.0x)
  • 字体大小:与区域面积匹配(不空不挤)
  • 元素间距:表格与图片、卡片与卡片之间有合理间距
  • 图片比例:保持原始比例,不拉伸
  • 图片边距:不碰圆弧角(≥0.15in)
  • 重要内容:人脸、文字未被裁切
  • emoji:无Unicode emoji残留

7.2 常见问题速查

问题原因解决方案
右侧太空字体太小/行间距太紧放大字体 + 加大行间距(1.5-2.0x)
元素重叠表格实际高度溢出检查行数×行高,设shape.height≥实际高度
图片超出页面y+h > 7.5英寸上移图片或缩小高度
上方空下方超元素整体偏下整体上移,检查每个元素的bottom
文件太大(20MB+)合并时图片重复嵌入在分段文件上操作,最后合并

八、验证清单(PPT交付前)

  • 全量扫描emoji/特殊字符
  • 每张图片保持原始比例(不拉伸)
  • 图片不碰圆弧角(有边距)
  • 重要内容(人脸/文字)未被裁切
  • 文字居中、间距合理
  • 合并后总页数正确
  • 分段文件合并后检查重叠/错位

九、图片比例处理原则

核心原则:调高度适配原比例,不裁剪重要内容

错误做法:强制裁剪图片到目标比例(2.78:1),导致图表坐标轴、图例等信息丢失

正确做法

  1. 保持图片原始比例
  2. 通过调整图片高度来适配区域
  3. 上下留白(白色背景匹配PPT背景)
  4. 图片居中放置

示例

# ❌ 错误:强制裁剪
cropped = img.crop((left, 0, right, height))  # 丢失图例和坐标轴

# ✅ 正确:保持原比例,调整高度
canvas = Image.new('RGB', (target_w, target_h), 'white')
scale = target_w / img_w  # 按宽度适配
new_h = int(img_h * scale)
resized = img.resize((target_w, new_h))
y_offset = (target_h - new_h) // 2  # 垂直居中
canvas.paste(resized, (0, y_offset))

何时可以裁剪

  • 照片类图片(人物、场景),裁剪不重要区域
  • 绝不裁剪数据图表的坐标轴、图例、标题

十、阿里巴巴普惠体设置(python-pptx)

10.1 正确的字体设置方法

关键:使用 run._r 而非 run._element

from pptx.oxml.ns import qn
from lxml import etree

def set_alihei(run, font_size=None, bold=None):
    """设置字体为阿里巴巴普惠体"""
    run.font.name = "阿里巴巴普惠体"
    rPr = run._r.get_or_add_rPr()  # 注意:是 _r 不是 _element
    rFonts = rPr.find(qn('w:rFonts'))
    if rFonts is None:
        rFonts = etree.SubElement(rPr, qn('w:rFonts'))
    rFonts.set(qn('w:eastAsia'), '阿里巴巴普惠体')
    if font_size:
        run.font.size = Pt(font_size)
    if bold is not None:
        run.font.bold = bold

10.2 字号自适应原则

根据文本长度和位置自动调整字号,确保文本框内不空不挤:

文本类型判断条件字号加粗
标题top < 1.0英寸28pt
短文本len(text) < 15字符22pt
中等文本len(text) < 50字符18pt
长文本len(text) ≥ 50字符16pt
for slide in prs.slides:
    for shape in slide.shapes:
        if shape.has_text_frame and shape.text.strip():
            text = shape.text
            is_title = shape.top < Inches(1.0)
            for para in shape.text_frame.paragraphs:
                for run in para.runs:
                    if is_title:
                        set_alihei(run, font_size=28, bold=True)
                    elif len(text) < 15:
                        set_alihei(run, font_size=22, bold=True)
                    elif len(text) < 50:
                        set_alihei(run, font_size=18)
                    else:
                        set_alihei(run, font_size=16)

十一、图片放置原则(避免遮挡内容)

11.1 添加图片前必须检查布局

铁律:先分析页面内容布局,找到空白区域再放图,绝不遮挡原有内容。

# 分析页面内容边界
min_left, max_right, min_top, max_bottom = Inches(15), 0, Inches(10), 0
for shape in slide.shapes:
    if shape.has_text_frame and shape.text.strip():
        l, t = shape.left, shape.top
        r, b = l + shape.width, t + shape.height
        min_left = min(min_left, l)
        max_right = max(max_right, r)
        min_top = min(min_top, t)
        max_bottom = max(max_bottom, b)

# 计算空白区域
if max_bottom < Inches(7):
    print(f"底部有空白: {max_bottom/914400:.1f}in - 7.5in")

11.2 空白区域判断

页面状态处理方式
底部有空白(>1.0in)底部居中放小图片(高度0.6-1.2in)
右侧有空白(>2.0in)右侧放图片,不遮挡左侧内容
满屏无空白不加图,卡片式/流程式设计不需要图片
有照片占位(如"黄仁勋照片")不加图,保留占位让用户手动添加

11.3 绝对禁止

  • ❌ 遮挡数据卡片(数值、标签)
  • ❌ 遮挡架构图、流程图
  • ❌ 遮挡照片占位区域
  • ❌ 在标题区域放图
  • ❌ 随意放置图片不考虑布局

11.4 图片尺寸规范

放置位置推荐宽度推荐高度说明
底部右侧2.0-2.5in0.6-0.9in装饰性小图
底部居中2.5-3.0in0.9-1.2in主题相关图
右侧空白4.0-5.0in2.5-3.0in较大配图

十二、飞书文件传输限制

12.1 文件大小限制

飞书单文件上传限制:约 25MB

文件大小处理方式
< 25MB直接发送
25-50MB压缩图片后发送
> 50MB删除图片或分卷压缩

12.2 压缩图片方法

from PIL import Image
import io

# 方法1:删除大图片(适合纯文字排版版本)
for slide in prs.slides:
    shapes_to_delete = [s for s in slide.shapes if s.shape_type == 13]
    for shape in shapes_to_delete:
        sp = shape._element
        sp.getparent().remove(sp)

# 方法2:压缩图片质量
img = Image.open(img_path)
output = io.BytesIO()
img.save(output, format='JPEG', quality=70)  # 压缩到70%质量

12.3 发送命令

openclaw message send \
  --channel feishu \
  --target "ou_xxx" \
  --media "/path/to/file.pptx" \
  --message "文件说明"

十三、PPT合并与版本管理

13.1 分段操作原则(再次强调)

铁律:在分段PPT上操作,不要先合并完整版再改。

原因:

  • 合并后文件膨胀(23MB+)
  • 图片可能被重复嵌入
  • 修改不便,发送困难

13.2 版本命名规范

版本命名说明
生成版大模型讲座1_P1-P10_红白风格.pptx脚本生成的初始版本
终稿大模型讲座1_P1-P10_红白风格_终稿.pptx确认不再修改的版本
备份大模型讲座1_P1-P10_红白风格_备份.pptx保留的原始备份
完整版大模型讲座1_完整版_红白风格.pptx所有分段合并后的版本

13.3 旧版本清理

确认终稿后,删除旧版本:

  • 只保留 _终稿.pptx
  • 删除生成版、备份版
  • 减少文件混乱

十四、文字排版核心经验(2026-04-06实战总结)

14.1 排版三要素联动

字体大小 + 行间距 + 文本框高度 三者必须配合调整:

问题现象原因解决方案
文字太空字号太小放大字号
文字太挤字号太大/行间距太小缩小字号 + 加大行间距
右侧太空字体太小/行间距太紧放大字体 + 加大行间距(1.5-2.0x)
上下不居中文本框高度不匹配调整文本框高度

14.2 视觉评估优先于参数

不是参数万能,是根据实际情况定的。

每页修改后检查:

  • 文字是否填满区域(不空不挤)
  • 行间距是否让文字呼吸(1.5-2.0x适合段落)
  • 字体大小是否与区域面积匹配
  • 整体是否上下居中
  • 左侧vs右侧:两侧都有内容,没有大片空白

14.3 卡片式设计的图片策略

卡片式/流程式设计页面不加图

  • P12(核心理念三卡片):不加图
  • P14(五步工作法流程):不加图
  • P15(三位一体架构):不加图
  • 这类页面以文字和图示为主,不需要额外配图

14.4 字体嵌入与文件大小

处理方式文件大小适用场景
嵌入字体20MB+需要在无字体电脑上完美显示
不嵌入字体100KB-1MB文件小,传输快,但需要电脑有对应字体

阿里巴巴普惠体:免费商用,大多数电脑可能没有,建议嵌入或告知用户安装


十六、配图搜索实战方法论(2026-04-07浏览器历史复盘)

16.1 核心理念

找图不是"配图",而是"用图说话"。 每张图都要和当页内容逻辑匹配,关键词就是页面主题,找不到就换角度再搜。

16.2 按页搜索,逐页击破

不是一次性找完所有图,而是每做一页搜一轮。搜索节奏和PPT制作节奏同步:

做P14(五步工作法) → 搜icon → 做P16(黄仁勋) → 搜黄仁勋照片 → ...

原因

  • 边做边搜,关键词精准(知道这页到底需要什么图)
  • 不会遗漏(每页都过一遍)
  • 不会过度搜索(找到就停,不过度纠结)

16.3 关键词策略:直接用标题或核心概念

用PPT页面标题当搜索词,不绕弯:

PPT页面搜索关键词平台
OpenClaw核心理念local-first 本地优先百度/Google图片
黄仁勋判断黄仁勋百度图片
CUDA护城河cuda百度图片
技术演进三阶段聊天机器人 AI助手 copilot百度图片
智能投顾智能投顾百度图片
灯塔工厂灯塔工厂百度图片
5G网络智能运维5G网络智能运维百度图片

16.4 多平台分工

平台最适合不适合
百度图片产业概念图、国内行业场景(智能制造、智慧城市)技术架构图、国外产品
Google图片技术概念、国外产品截图(Tesla Optimus、Genie)中文行业概念
icon-icons.com抽象概念图标(消息、思考、工具、计算、报告)实景照片
GitHub开源项目截图、架构图(SciClaw)通用场景图
wallhaven高清壁纸/背景图概念图
证券研究所产业架构图、行业图谱人物照片
政府官网(gov.cn)政策、会议照片技术概念图

16.5 同一主题多角度搜索

找不到合适的就换关键词、换角度:

第一轮:智能反欺诈
  → 图不够好
第二轮:智能反欺诈系统
  → 还行但想更专业
第三轮:智能金融反欺诈系统
  → 找到满意的了

第一轮:人才培养
  → 太泛
第二轮:大学教师
  → 还行
第三轮:大学教室
  → 这张更好

第一轮:开放生态
  → 不够技术感
第二轮:开放技术生态
  → 还可以
第三轮:open tech env(换Google搜)
  → 国外的图更有科技感

16.6 批量搜索模式

做完整个章节后,批量搜索该章节所有页面

第二章 行业案例(P20-P41)批量搜索:
  11:56 - 智能体、多智能体、multi agent
  12:25 - OpenClaw保姆级指南
  12:27 - Genie、Tesla Optimus、宇树
  12:36 - 智能制造、智能医疗、智能运维
  12:42 - 智能投顾、反欺诈
  12:45 - 数据中心
  12:49 - 人才培养、大学教师、社会服务
  12:52 - 清华AI教育

效率:一小时内完成整个章节(20+页)的图片搜索。

16.7 搜索顺序建议

阶段时间搜索内容
封面+目录5分钟Logo、主题图
第一章(技术概念)20-30分钟概念图标、人物照片、技术架构图
第二章(行业案例)40-60分钟行业场景图、案例截图、数据图表
第三章(教育使命)20-30分钟教育场景图、大学照片、人物图
总结+附录10分钟补充图、致谢背景

16.8 搜索记录的价值

浏览器历史记录是配图过程的审计线索

  • 回溯每张图的来源
  • 验证图片是否与内容逻辑关联
  • 找到更好的替代图(如果需要替换)

建议保留搜索记录,或在PPT制作日志中记录每张图的来源。


十五、重要备注(2026-04-06)

15.1 图片功能暂不支持自动化部署

当前限制:AI自动生成图片并插入PPT的功能存在以下问题,暂不推荐自动化部署:

问题说明
图片搜索不可靠Unsplash被墙、Pexels/Pixabay需API、picsum随机图不相关
图片放置易出错随意放置会遮挡原有内容(数据卡片、架构图、照片占位)
图片尺寸难控制比例不匹配、拉伸变形、边距不当
文件大小膨胀原始图片7MB/张,飞书上传限制25MB

当前建议

  1. 文字排版自动化:✅ 支持,可自动设置字体、字号、行间距
  2. 图片插入:❌ 手动添加,AI只负责提供图片建议和位置
  3. 终稿确认:人工审核每页视觉效果后再确认

未来改进方向

  • 接入稳定的图片搜索API(需API Key)
  • 实现智能布局分析(自动找空白区域)
  • 图片自动压缩(保持质量的同时控制文件大小)

实战结论:目前AI能做好文字排版,但图片处理仍需人工介入。与其花时间做不稳定的自动化,不如专注排版质量,图片留给用户手动添加。


十七、图片质量检测与清理(2026-04-07实战总结)

17.1 为什么要做图片质量检测

用户手动加完图片后,AI需要终审:检查是否有占位符残留、白底过大、尺寸异常等问题。这是PPT交付前的最后一道质量关。

17.2 检测方法(Python自动化)

from PIL import Image
import os

media_dir = 'ppt/media'

# 1. 检测灰色占位符(RGB≈E8EEF4)
for f in os.listdir(media_dir):
    img = Image.open(f'{media_dir}/{f}').convert('RGB')
    w, h = img.size
    samples = [img.getpixel((x, y)) for x in range(0, w, w//10) for y in range(0, h, h//10)]
    gray_count = sum(1 for r,g,b in samples if abs(r-232)<15 and abs(g-238)<15 and abs(b-244)<15)
    if gray_count / len(samples) > 0.5:
        print(f'⚠️ 灰色占位符: {f}')

# 2. 检测大面积空白(白色>85%)
    white_count = sum(1 for r,g,b in samples if r>250 and g>250 and b>250)
    if white_count / len(samples) > 0.85:
        print(f'⚠️ 白底过大: {f}')

# 3. 检测尺寸过小(<150px)
    if w < 150 or h < 150:
        print(f'⚠️ 尺寸过小: {f} ({w}x{h})')

# 4. 检测极端比例(>5:1 或 <1:5)
    if w/h > 5 or h/w > 5:
        print(f'⚠️ 比例极端: {f} ({w}x{h})')

17.3 残留图片清理

问题:合并多个分段PPT后,media目录中可能有未被任何页面引用的残留图片。

检测方法

from pptx import Presentation
import zipfile
from lxml import etree

# 获取所有被引用的图片
used = set()
for i in range(len(prs.slides)):
    rels = etree.parse(f'ppt/slides/_rels/slide{i+1}.xml.rels')
    for rel in rels.findall('.//{...}Relationship'):
        if 'media/' in rel.get('Target', ''):
            used.add(os.path.basename(rel.get('Target')))

# 找出未使用的
all_imgs = set(os.listdir('ppt/media'))
unused = all_imgs - used
print(f'残留图片: {unused}')  # 可安全删除

本次实战发现:54张图片中有4张残留(含1张1.8MB的灰色占位符),清理后文件缩小2MB。

17.4 常见问题速查表

问题检测标准处理方式
灰色占位符灰色像素>50%(RGB≈E8EEF4)替换为真实图片
白底过大白色像素>85%换透明背景PNG或裁剪
尺寸过小任意边<150px换大图(至少400px)
比例极端宽高比>5:1或<1:5确认是否为设计需要(横条/竖条)
残留图片未被任何slide rels引用安全删除
无法读取WDP等特殊格式检查是否需要转换

17.5 omni模型图片审核(视觉能力)

当AI具备视觉能力(mimo-v2-omni)时,可以直接看图判断

# 用image工具逐页审核
# prompt: "这张PPT配图的内容是什么?是否与'XXX'主题匹配?有没有模糊/水印/变形?"

omni审核的优势

  • 直接判断图片内容是否与页面主题匹配
  • 发现模糊、水印、变形等质量问题
  • 识别图片中是否有敏感内容

注意:当前mimo-v2-omni的图片分析功能稳定性待提升,建议先用Python检测(17.2节),视觉审核作为辅助。

17.6 完整的图片审核流程

1. Python自动化检测
   ├── 灰色占位符检测
   ├── 白底过大检测
   ├── 尺寸异常检测
   └── 残留图片检测

2. 视觉内容审核(如有omni)
   ├── 图片内容与页面主题匹配度
   ├── 图片质量(清晰度、专业度)
   └── 敏感内容检查

3. 清理与修复
   ├── 删除残留图片
   ├── 替换占位符
   └── 记录问题清单给用户

十八、红白风格设计规范 V2.0(2026-04-10整合)

基于贾老师PPT深度分析,用于指导红白风格PPT的制作

18.1 配色系统

18.1.1 背景色

类型颜色用途
红色背景#E63946封面上半部分、底部装饰条
白色背景#FFFFFF封面下半部分
浅色背景浅蓝渐变(#F5F7FA 或 #E8F0FA)正文页面
卡片背景白色(#FFFFFF)数据卡片、内容块

18.1.2 强调色

颜色用途
红色(#E63946)标题栏、重点文字、序号、边框
黄色(#FFD600)关键数据、对比标识(VS)、皇冠图标
蓝色(#1A73E8)科技元素、品牌logo、图表柱子

18.1.3 文字色

颜色用途
白色(#FFFFFF)深色背景上的标题
黑色(#1A1A2E)浅色背景上的正文
红色(#E63946)强调文字、标题
灰色(#6B7B8D)辅助说明文字

18.2 布局类型

18.2.1 封面页(红白双色分区)

  • 布局:上红下白双色分区
  • 红色区域(56%高度)
    • 左上角小字:课程归属(白色,14pt)
    • 中间:模块编号(白色,54pt,粗体)
    • 下方:课程主标题(白色,44pt,粗体)
    • 底部:关键词(白色,18pt)
  • 白色区域(44%高度)
    • 讲师姓名(黑色,36pt,粗体)
    • 公司/职位(灰色,16pt)
  • 底部红色装饰条:高度约0.38英寸
  • 文字颜色:红色区域内白色,白色区域内黑色/灰色

18.2.1b 尾页(红白双色分区)

  • 布局:上红下白双色分区 + 底部红色装饰条
  • 红色区域(50%高度)
    • "谢谢!"(白色,72pt,粗体,居中)
    • 位置:top≈1500000(红色区域内偏上)
  • 白色区域(50%高度)
    • 模块标题(黑色,28pt,居中)
    • 位置:top≈4500000(白色区域内)
  • 底部红色装饰条:高度约0.38英寸
  • 核心原则
    • 两行文字作为整体居中分布
    • "谢谢"在红色背景上(白色)
    • 模块标题在白色背景上(黑色)
    • 两行文字要分开适当距离,避免挤在一起

18.2.2 正文页(红色标题栏)

  • 布局:顶部红色标题栏 + 下方浅色背景,双栏布局
  • 红色标题栏:高度约0.56英寸(822960 EMU),颜色 #E63946
  • 标题文字:白色,28pt,粗体,位于红色标题栏内
  • 正文区域:浅色背景,左右两个白色卡片并排
  • 卡片内部元素
    • 小标题:黑色,20pt,粗体
    • 红色横线装饰:位于小标题下方,右侧拉长2倍
    • 内容:黑色,20pt,1.5倍行距(line_spacing=1.5),段后间距0
  • 核心原则
    • 红色标题栏内文字必须为白色
    • 红色横线适当下移,避免与标题重叠
    • 内容文字设置自动换行(word_wrap=True)
    • 文字超出文本框时,缩小字号(18pt)

18.2.3 目录页(卡片式)

  • 布局:顶部红色标题栏 + 下方3个白色卡片水平排列
  • 红色标题栏:"目录"(白色,32pt,粗体,左上角)
  • 卡片参数
    • 卡片数量:3个,左右均匀分布
    • 卡片高度:占内容区域85%,上下居中
    • 卡片样式:白色背景 + 红色边框(1.5pt)
  • 卡片内部元素
    • 序号:红色方形块(#E63946)+ 白色数字(36pt,粗体,居中)
    • 标题:黑色(20pt,粗体),位于序号下方
    • 红色横线装饰:位于标题下方
    • 内容:灰色(20pt,2倍行距),列点形式
  • 核心原则
    • 卡片上下居中,不要偏上或偏下
    • 红色横线和内容文字要与标题保持适当距离,避免重叠
    • 字体统一20pt,行距2倍

18.2.4 章节页(左红右白分栏)

  • 布局:左侧红色大色块 + 右侧白色区域
  • 红色区域(左侧37.5%宽度)
    • 序号:白色,72pt,粗体(如"01"、"02"、"03")
    • 章节标题:白色,36pt,粗体
    • 位置:左侧整体上下居中
  • 白色区域(右侧62.5%宽度)
    • "本章要点":黑色,28pt,粗体
    • 要点内容:黑色,24pt,2倍行距(line_spacing=2.0),段后间距0
    • 位置:右侧整体上下居中
  • 核心原则
    • 左右两侧内容各自整体居中
    • 序号和标题在红色区域内,白色文字
    • "本章要点"和内容在白色区域内,黑色文字
    • 要点内容行距2倍,段后间距0

18.2.5 卡片式水平排列

  • 布局:2-4个白色卡片水平并排
  • 卡片内部:上文下图 或 上图下文
  • 装饰:白色背景 + 轻微阴影 + 红色边框(重点卡片用蓝色边框)
  • VS对比:红色"VS"图标分隔对比卡片

18.2.4 左图右文

  • 布局:左侧图片区(50-60%)+ 右侧文字区(40-50%)
  • 图片类型:创意插画、场景照片、数据图表
  • 文字层级:红色标题 → 黑色正文 → 灰色辅助

18.2.5 三段式左图右文

  • 布局:页面分为上中下三段,每段左侧图片 + 右侧文字
  • 适用:介绍3个并列概念/案例
  • 特点:图文一一对应,结构清晰

18.2.6 分块式布局

  • 布局:多个功能区块组合(左/中/右 或 上/中/下)
  • 元素:按钮式色块 + 图标 + 文字框
  • 装饰:红色/黄色色块、大脑图标、VS标识

18.3 图文配比规范

页面类型图片占比文字占比说明
卡片式40-50%50-60%卡片内图文1:1
左图右文50-60%40-50%图片为主
三段式40-45%55-60%图文均衡
数据页10%90%以表格/文字为主
流程图60%40%图片/图标为主

18.4 字体层级

层级字号颜色用途
一级48-64pt白色/红色页面大标题
二级28-36pt红色/黑色板块标题、卡片标题
三级20-24pt黑色正文要点
四级14-18pt灰色/黑色辅助说明、标签
五级12pt灰色最小补充文字

18.5 装饰元素

18.5.1 必备元素

  • 红色标题栏:顶部横条(高度约1.2英寸)
  • 圆形序号框:红色填充 + 白色数字
  • 圆角矩形卡片:白色背景 + 红色/蓝色边框
  • VS图标:红色圆形 + 白色"VS"文字

18.5.2 科技感元素

  • 大脑图标:象征AI/思维
  • 齿轮/电路图标:象征技术
  • 箭头流程线:连接流程步骤
  • 皇冠图标:象征等级/领先

18.6 快速应用模板

模板A:卡片式(2卡片对比)

[红色标题栏]
[卡片1: 上图下文]  VS  [卡片2: 上图下文]

模板B:左图右文

[红色标题栏]
[图片区 55%]  [文字区 45%]

模板C:三段式

[红色标题栏]
[图1 + 文1]
[图2 + 文2]
[图3 + 文3]

模板D:分块式

[红色标题栏]
[按钮1] [按钮2] [按钮3]
[图表/流程图]
[说明文字]

18.7 python-pptx实现代码示例

from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor

# 颜色定义
class Colors:
    DARK_BLUE_START = RGBColor(0x0A, 0x16, 0x28)  # 深蓝渐变起始
    DARK_BLUE_END = RGBColor(0x1A, 0x3A, 0x5C)    # 深蓝渐变结束
    LIGHT_BLUE = RGBColor(0xF5, 0xF7, 0xFA)       # 浅蓝背景
    RED = RGBColor(0xE6, 0x39, 0x46)               # 红色强调
    YELLOW = RGBColor(0xFF, 0xD6, 0x00)            # 黄色
    BLUE = RGBColor(0x1A, 0x73, 0xE8)              # 蓝色
    WHITE = RGBColor(0xFF, 0xFF, 0xFF)
    BLACK = RGBColor(0x1A, 0x1A, 0x2E)
    GRAY = RGBColor(0x6B, 0x7B, 0x8D)

# 设置渐变背景
def set_slide_background_gradient(slide, color1, color2):
    background = slide.background
    fill = background.fill
    fill.gradient()
    fill._fill.gradient_stops[0].color.rgb = color1
    fill._fill.gradient_stops[1].color.rgb = color2

# 设置纯色背景
def set_slide_background_solid(slide, color):
    background = slide.background
    fill = background.fill
    fill.solid()
    fill.fore_color.rgb = color

# 添加红色标题栏
def add_red_header(slide, title):
    add_shape(slide, Inches(0), Inches(0), Inches(13.33), Inches(0.8), Colors.RED)
    add_text_box(slide, Inches(0.5), Inches(0.1), Inches(12), Inches(0.6),
                 title, 28, Colors.WHITE, True)

# 添加白色圆角卡片
def add_white_card(slide, left, top, width, height):
    return add_rounded_rectangle(slide, left, top, width, height, Colors.WHITE)

# 添加VS对比图标
def add_vs_icon(slide, left, top):
    shape = add_shape(slide, left, top, Inches(1), Inches(1), Colors.RED)
    add_text_box(slide, left, top + 0.15, Inches(1), Inches(0.7),
                 "VS", 28, Colors.WHITE, True, PP_ALIGN.CENTER)

版本: V2.0(整合版)
更新日期: 2026-04-10
来源: 红白风格设计规范V2.0 + ppt-pandora实战经验


Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

MigraQ

腾讯云迁移平台(CMG/MSP)全流程能力。触发词:资源扫描、扫描阿里云/AWS/华为云/GCP资源、生成云资源清单、选型推荐、对标腾讯云、推荐规格、帮我推荐、给我推荐、ECS对应什么腾讯云产品、成本分析、TCO、迁移报价、询价、价格计算器、cmg-scan、cmg-recommend、cmg-tco

Registry SourceRecently Updated
General

🫧 Flux 2 Klein — Pro Pack on RunComfy

Generate images with Flux 2 Klein (Black Forest Labs' distilled fast variant of Flux 2) on RunComfy — bundled with the model's documented prompting patterns...

Registry SourceRecently Updated
General

XHS Content Generator

根据热点榜单和主题自动生成吸引眼球的小红书爆款标题和内容框架,支持多种热门领域并优化emoji使用。

Registry SourceRecently Updated
General

Bosch Group

提供博世集团历史、业务板块、技术创新及治理结构的全面企业信息和产业发展分析。

Registry SourceRecently Updated