通过从参考模板中提取视觉风格,并使用 PptxGenJS 从头重新创建幻灯片来生成演示文稿。适用场景:用户提供 PPT……
PPT 由 Template 中生成
功能概述
PPT 由 Template 中生成是一项面向实际任务的技能,主要用于Generate 演示文稿, 取自参考模板的样式, 然后用 PptxGenJS.;Core 原理构建新幻灯片 : 永远不要修改现有的 PPT XML.;
核心要点
- 请看 tyt。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
基于模板生成 PPT
通过从参考模板中提取样式,再结合 PptxGenJS 从零构建全新幻灯片,实现演示文稿的自动生成。
核心原则:绝不修改现有 PPT 的 XML 结构;仅分析其视觉样式,然后完全重新绘制。
模板管理
模板目录
默认模板目录:{workspaceDir}/template/
每次执行时:
- 扫描
{workspaceDir}/template/目录下的所有*.pptx文件。 - 若仅找到 一个 模板 → 自动选用。
- 若找到 多个 模板 → 列出全部选项,并提示用户手动选择。
- 若 未找到任何 模板 → 提示用户上传
.pptx文件或指定路径。
用户上传
支持用户上传 .pptx 文件。处理前需执行以下检查:
- 文件大小校验:拒绝大于 50 MB 的文件,并返回提示:“模板文件超过 50MB 限制,请压缩后重试”。
- 上传成功后,保存至
{workspaceDir}/template/以供后续复用。
工作流程
第一阶段:样式提取
# 若为 .pptx 文件,先转为 PDF 用于视觉分析:
python3 {baseDir}/scripts/pptx_to_pdf.py template.pptx /tmp/ppt_style/template.pdf
# 提取每页图像:
bash {baseDir}/scripts/extract_pages.sh /tmp/ppt_style/template.pdf /tmp/ppt_style/ 150
# 从 PPTX XML 中高精度提取样式:
python3 {baseDir}/scripts/extract_style.py template.pptx -o /tmp/ppt_style/style_raw.yaml
读取 style_raw.yaml 获取精确样式数据(十六进制颜色值、字体名称、字号(单位:pt)、位置(单位:英寸)、填充类型、线条样式等);再读取其中 3–5 页图像,用于语义理解(如元素角色判断、版式分类)。
样式提取分为两个层级:
| 层级 | 数据来源 | 需捕获内容 |
|---|---|---|
| 全局样式 | style_raw.yaml | 配色(十六进制)、排版(字体/字号/字重)、装饰性元素 |
| 单版式样式 | style_raw.yaml + 页面图像 | 元素清单:类型、角色、坐标(x/y)、尺寸(w/h)、样式属性 |
支持的元素类型包括:text、image、video、shape、line、numbered_list、step_list、tag_group、chart、table。
对于图片与视频:设置 placeholder: true,并附带 description 字段,便于用户后续手动替换。
最终结果写入 style.yaml。Schema 定义见:references/style-schema.md。
第二阶段:PPT 生成
调用 pptx 技能(基于 PptxGenJS)创建幻灯片:
- 读取
style.yaml获取视觉参数。 - 与用户输入内容(主题、页数、大纲)融合。
- 生成符合所提取样式的 PptxGenJS JavaScript 代码。
- 执行该 JS 代码,输出
.pptx文件。 - 质量验证:将生成的 PPT 转为图像,比对样式保真度。
大型演示文稿策略(>15 页)
PptxGenJS 本身的生成速度极快(秒级),但为大量幻灯片编写 JS 代码可能触发上下文长度或执行时间限制。应对策略如下:
| 页数范围 | 策略 |
|---|---|
| ≤15 | 单次生成流程 |
| 16–30 | 拆分为两个 JS 文件:第 1–15 页、第 16–30 页;依次生成后,使用 pptx-merge 合并;或在一个 pres 对象中,通过两段代码块协同生成 |
| 31–100+ | 为每种版式定义一个 幻灯片工厂函数,再遍历内容数组批量生成;单个 JS 文件,数据驱动 |
大型文稿推荐采用幻灯片工厂模式:
// 根据 style.yaml 定义各类版式的工厂函数
function makeCover(pres, content) { /* ... */ }
function makeContent(pres, content) { /* ... */ }
function makeSection(pres, content) { /* ... */ }
// 内容数组 —— 易于扩展
const slides = [
{ layout: "cover", title: "...", subtitle: "..." },
{ layout: "content", title: "...", items: [...] },
// …… 可达 50+ 条目
];
slides.forEach(s => layoutFactories[s.layout](pres, s));
该方式使代码体积复杂度为 O(版式数),而非 O(页数)。
输出文件大小控制
目标输出文件小于 20 MB。PptxGenJS 默认输出极小(纯文本类文稿通常为 100–500 KB)。大体积主要源于嵌入的图像资源。当输出接近 20 MB 时,执行以下措施:
- 在 PptxGenJS 配置中降低图像分辨率/压缩质量。
- 改用占位符代替嵌入图像。
- 如确有必要,可将内容拆分为多个 PPT 文件。
- 向用户发出警告:“PPT 接近 20MB 限制,已使用图片占位符,请手动替换”。
占位符规范
- 图片占位符:深色矩形 + 灰色虚线边框 + 🖼️ + 标签 + 替换建议
- 视频占位符:深色矩形 + 红色虚线边框 + ▶️ + 标签 + 替换建议
关键规则
- 严禁修改原始 PPT 的 XML —— 所有输出均须从零生成。
style.yaml具备复用性:一旦提取完成,即可无限次生成同风格 PPT。- PptxGenJS 中启用
shrinkText: true实现长文本自动缩放适配。 - 幻灯片尺寸必须严格匹配
style_raw.yaml中提取的实际值(不可硬编码为 16:9)。
文件约定
{workspaceDir}/
├── template/ ← .pptx 模板目录(自动发现)
│ └── *.pptx ← 单个文件最大 50 MB
├── output/ ← 生成的 PPT 输出目录
│ └── *.pptx ← 单个文件最大 20 MB
/tmp/ppt_style/ ← 临时工作目录(非持久化)
├── template.pdf
├── page-*.jpg
├── style_raw.yaml ← extract_style.py 输出
└── style.yaml ← 整合后版本(含精确样式 + 语义信息)
故障排查
| 问题 | 解决方案 |
|---|---|
| 模板文件 > 50 MB | 提示用户压缩文件或移除内嵌媒体资源 |
| 输出文件 > 20 MB | 启用占位符,减少图片数量或降低分辨率 |
| 页数 > 30 导致超时 | 采用幻灯片工厂模式,实施数据驱动式生成 |
| 未找到模板 | 提示用户上传 .pptx 文件或指定路径 |
| 存在多个模板 | 列出全部选项,要求用户主动选择 |
| 字体不可用 | 回退至 Arial / sans-serif;并在输出中注明 |
| 复杂渐变效果 | 在 style.yaml 中描述;建议使用背景图替代 |
热门AI工具
相关专题
在 PPT 中一次性插入多张图片,可先打开 PPT,定位到要插入图片的幻灯片,点击 “插入” 选项卡中的 “图片”。在弹出的文件选择窗口中,按住 Ctrl 键(Windows 系统)或 Command 键(Mac 系统),逐一选择所需图片,然后点击 “插入” 按钮即可。
149801
2025.04.28
本专题推荐了多个提供免费 PPT 模板的网站,包括 SlideModel、PowerPoint Templates、Presentation Magazine、Free-Powerpoint-Templates 和 Canva。这些网站提供种类繁多的模板,涵盖各种主题、风格和设计。
15139
2025.03.10
热门下载
相关下载
精品课程






