公司模板 PPT 生成
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_29221402/creatppt-from-jittemplate。
技能介绍
解决什么问题
把内容填进公司 PPT 模板,听起来是 python-pptx 的入门题,真正写起来却是最容易翻车的一环:
- 标题放进了普通文本框,位置、字号、颜色跟模板无关,投影时一眼看出"不是模板做的"。
- 章节页自己画了一块深蓝背景,和母版的装饰元素对不上;直接复用模板自带的"标题和内容"版式,又会带出左侧"目录/CONTENTS"装饰残留。
- 在页面级重画页眉,股票代码折行后和版式页眉叠在一起;改了母版或版式 XML 想一劳永逸,结果污染整套模板。
- 删掉 slide 再重建,文件直接报 OOXML Duplicate name 损坏;保存后没清空占位符,放映时冒出"单击此处添加文本"。
这个技能针对上述问题,用一套固定流程生成严格贴合模板的成品。
核心能力与关键步骤
技能包含两个可直接复用的资产:assets/template.pptx(16:9 画布,11 个版式)和 scripts/generate.py(helper 函数均已验证)。生成流程如下:
- 封面:定位
テキスト ボックス 12(实测 x=0.603 y=2.285),仅替换段落文字,run 保持 44pt、方正大黑简体、tx1+lumOff15000,不动其他形状。 - 目录:切到
LAYOUT_CONTENT版式,用delete_all_named清掉右侧导航菜单形状,再用put_title写"目录"并自绘模块卡。 - 章节页:
switch_slide_layout(TPL_PART, LAYOUT_CHAPTER)切到节标题版式,只改文本框 6/12 的文字,两条连接符原样保留,并把章节名框宽拉到Inches(6.00)防折行。 - 内容页:
prs.slides.add_slide(LAYOUT_CONTENT)后用put_title在 (0.814, 0.105) 写入 32pt 加粗标题,正文只在安全区 (y≈1.0"~6.9") 绘制。 - 清理与重排:遍历所有 slide 删除空占位符,按
desired顺序重排sldIdLst,以《封面标题》YYYYMMDDHHMMSS.pptx 命名存入工作区。
几个值得注意的 helper:switch_slide_layout 通过 part.rels.items() 找到 SLIDE_LAYOUT 后 drop_rel + relate_to,切版式不删 slide、不碰母版;put_title 写入 fit_title_size 自适应字号;多章节扩展时克隆装饰形状必须经 _reid 重映射 cNvPr/@id,否则 id 冲突会损坏文件。
适用边界与注意点
- 绑定单一模板:坐标、配色常量(如 BRAND=123FAE)、字体(方正大黑简体 / 方正兰亭纤黑简体)都来自这份模板,换模板需重新 dump 实测坐标并更新脚本常量。
- 只适用于 python-pptx 可表达的结构:图表的精细编辑、动画与切换效果不在能力范围内。
- 禁止删 slide 重建:删除会引发 OOXML 重复 name 报错,顺序问题一律靠重排
sldIdLst解决。 - 禁止改母版/版式 XML:所有内容写在页面级,改母版会污染后续所有页面。
- 改动前先备份:修改已有 pptx 时先在工作区生成
原名_backup_YYYYMMDD_HHMMSS.pptx。 - 本地无 PowerPoint,交付前务必在真实 PowerPoint 中打开核验:检查空占位符、标题锚点、章节页 PART 编号、页面级是否误现"003029"、表格越界。
使用场景
- 公司品牌部每季度用统一模板出宣讲材料,需要批量生成封面、目录、章节页和内容页
- 咨询顾问要在客户模板里填充行业分析章节,内容页需自带完整页眉且不与股票代码重叠
- 培训团队用同一套版式制作多章节课件,要求新增章节页时保留 PART 蓝字和两条连接符
- 产品运营按周输出述职 PPT,需要按《封面标题》_时间戳规则命名并清理空占位符后再交付
适合人员
- 需要按公司模板批量出宣讲材料的品牌或市场专员
- 要在客户模板中填充章节内容的咨询顾问
- 用统一版式制作多章节课件的内部培训师
- 用 python-pptx 生成模板化 PPT 的工程师