关于 pptx
pptx 是用于读取、编辑和创建 PowerPoint 演示文稿的技能,提供命令行处理流程。它涵盖内容提取、版式预览、基于模板编辑,以及检查渲染结果中的问题。
主要功能
- 01使用 markitdown 提取演示文稿文本
- 02生成幻灯片缩略图以供预览
- 03基于模板编辑演示文稿
- 04使用 pptxgenjs 从头创建演示文稿
- 05将幻灯片转换为图像进行检查
- 06执行内容和视觉质量检查
适用场景
- 01提取 PPTX 文件中的文本
- 02编辑前检查幻灯片版式
- 03无参考模板时创建演示文稿
- 04检查幻灯片是否有溢出和布局问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ makerjackie/ jackie-skills-starter --skill pptx安装后在 Claude Code 中输入/pptx确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
editing.mdLICENSE.txtpptxgenjs.mdscripts/__init__.pyadd_slide.pyclean.pyscripts/office/pack.pyscripts/office/helpers/__init__.pymerge_runs.pysimplify_redlines.pyscripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsdopc-coreProperties.xsdopc-digSig.xsdopc-relationships.xsdscripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsddml-chartDrawing.xsddml-diagram.xsddml-lockedCanvas.xsddml-main.xsddml-picture.xsddml-spreadsheetDrawing.xsddml-wordprocessingDrawing.xsdpml.xsdshared-additionalCharacteristics.xsdshared-bibliography.xsdshared-commonSimpleTypes.xsdshared-customXmlDataProperties.xsdshared-customXmlSchemaProperties.xsdshared-documentPropertiesCustom.xsdshared-documentPropertiesExtended.xsd详细介绍
(中文)PPTX 技能
快速参考
| 任务 | 指南 |
|---|---|
| 阅读/分析内容 | python -m markitdown presentation.pptx |
| 基于模板编辑或创建 | 阅读 editing.md |
| 从头开始创建 | 阅读 pptxgenjs.md |
阅读内容
# Text extraction
python -m markitdown presentation.pptx
# Visual overview
python scripts/thumbnail.py presentation.pptx
# Raw XML
python scripts/office/unpack.py presentation.pptx unpacked/
编辑工作流
阅读 editing.md 了解完整详情。
- 使用
thumbnail.py分析模板 - 解包 → 操作幻灯片 → 编辑内容 → 清理 → 打包
从头开始创建
阅读 pptxgenjs.md 了解完整详情。
当没有可用的模板或参考演示文稿时使用。
设计构思
不要制作枯燥的幻灯片。 白色背景上的纯项目符号不会给人留下深刻印象。可以为每张幻灯片从以下列表中汲取灵感。
开始之前
- 选择大胆且契合内容的配色方案:配色应当是为这一主题量身设计的。如果把这些颜色换到完全不同的演示文稿中仍然「合适」,说明你的选择还不够具体。
- 强调主次,而非平均分配:一种颜色应占主导(视觉权重为 60-70%),再搭配 1-2 种辅助色调和一种鲜明的点缀色。绝不要让所有颜色的权重相同。
- 明暗对比:标题页和结论页采用深色背景,内容页采用浅色背景(「三明治」结构)。或者全程使用深色,营造高级质感。
- 坚持一种视觉主题:选择一种独特元素并重复使用——圆角图片框、彩色圆圈中的图标、单侧粗边框等。让它贯穿每张幻灯片。
配色方案
选择与主题相符的颜色——不要默认使用普通的蓝色。可以参考以下配色方案:
| 主题 | 主色 | 次色 | 点缀色 |
|---|---|---|---|
| 午夜高管风 | 1E2761(海军蓝) | CADCFC(冰蓝) | FFFFFF(白色) |
| 森林与苔藓 | 2C5F2D(森林绿) | 97BC62(苔藓绿) | F5F5F5(奶油色) |
| 珊瑚活力风 | F96167(珊瑚色) | F9E795(金色) | 2F3C7E(海军蓝) |
| 暖陶土色 | B85042(陶土色) | E7E8D1(沙色) | A7BEAE(鼠尾草绿) |
| 海洋渐变 | 065A82(深蓝) | 1C7293(蓝绿色) | 21295C(午夜蓝) |
| 炭灰极简风 | 36454F(炭灰色) | F2F2F2(米白色) | 212121(黑色) |
| 蓝绿色信赖风 | 028090(蓝绿色) | 00A896(海沫绿) | 02C39A(薄荷绿) |
| 莓果与奶油色 | 6D2E46(莓果色) | A26769(灰玫瑰色) | ECE2D0(奶油色) |
| 鼠尾草宁静风 | 84B59F(鼠尾草绿) | 69A297(桉树绿) | 50808E(石板蓝) |
| 樱桃大胆风 | 990011(樱桃红) | FCF6F5(米白色) | 2F3C7E(海军蓝) |
每张幻灯片
每张幻灯片都需要视觉元素——图片、图表、图标或形状。只有文字的幻灯片容易被遗忘。
布局选项:
- 双栏(左侧文字,右侧插图)
- 图标 + 文字行(彩色圆圈中的图标、粗体标题、下方说明)
- 2x2 或 2x3 网格(一侧放图片,另一侧放内容块网格)
- 半幅出血图片(铺满左侧或右侧),叠加内容
数据展示:
- 大号数据标注(60-72pt 大号数字,下方配小字标签)
- 对比栏(前后对比、优缺点、并排选项)
- 时间线或流程图(编号步骤、箭头)
视觉润色:
- 在章节标题旁的彩色小圆圈中放置图标
- 用斜体强调关键数据或标语
排版
选择有趣的字体搭配——不要默认使用 Arial。选择一款有个性的标题字体,并搭配一款简洁的正文字体。
| 标题字体 | 正文字体 |
|---|---|
| Georgia | Calibri |
| Arial Black | Arial |
| Calibri | Calibri Light |
| Cambria | Calibri |
| Trebuchet MS | Calibri |
| Impact | Arial |
| Palatino | Garamond |
| Consolas | Calibri |
| 元素 | 大小 |
|---|---|
| 幻灯片标题 | 36-44pt 粗体 |
| 章节标题 | 20-24pt 粗体 |
| 正文 | 14-16pt |
| 说明文字 | 10-12pt 柔和色调 |
间距
- 最小边距为 0.5"
- 内容块之间留出 0.3-0.5"
- 留出呼吸空间——不要填满每一寸
避免(常见错误)
- 不要重复相同的布局 — 在各张幻灯片中变换栏、卡片和标注框
- 不要将正文居中 — 段落和列表左对齐;只将标题居中
- 不要在字号对比上偷懒 — 标题需要 36pt+ 才能从 14-16pt 的正文中脱颖而出
- 不要默认使用蓝色 — 选择能反映具体主题的颜色
- 不要随意混用间距 — 选择 0.3" 或 0.5" 的间隙并一致使用
- 不要只美化一张幻灯片而让其余保持朴素 — 要么彻底投入,要么始终简洁
- 不要创建纯文本幻灯片 — 添加图片、图标、图表或视觉元素;避免只有标题 + 项目符号
- 不要忘记文本框内边距 — 当将线条或形状与文本边缘对齐时,在文本框上设置
margin: 0,或偏移形状以考虑内边距 - 不要使用低对比度元素 — 图标和文本都需要与背景形成强烈对比;避免浅色背景上的浅色文字或深色背景上的深色文字
- 切勿在标题下使用装饰线 — 这是 AI 生成幻灯片的标志;改用留白或背景色
QA(必需)
假设存在问题。你的任务是找出它们。
你的第一次渲染几乎从不正确。将 QA 视为找 bug,而不是确认步骤。如果你在首次检查时没有发现任何问题,说明你找得不够仔细。
内容 QA
python -m markitdown output.pptx
检查是否有缺失内容、拼写错误、顺序错误。
使用模板时,检查是否有遗留的占位文本:
python -m markitdown output.pptx | grep -iE "xxxx|lorem|ipsum|this.*(page|slide).*layout"
如果 grep 返回结果,请在宣布成功之前修复它们。
视觉 QA
⚠️ 使用子 Agent — 即使只有 2-3 张幻灯片。你一直盯着代码看,会看到你预期的内容,而不是实际存在的内容。子 Agent 有全新的视角。
将幻灯片转换为图像(参见转换为图像),然后使用此提示词:
Visually inspect these slides. Assume there are issues — find them.
Look for:
- Overlapping elements (text through shapes, lines through words, stacked elements)
- Text overflow or cut off at edges/box boundaries
- Decorative lines positioned for single-line text but title wrapped to two lines
- Source citations or footers colliding with content above
- Elements too close (< 0.3" gaps) or cards/sections nearly touching
- Uneven gaps (large empty area in one place, cramped in another)
- Insufficient margin from slide edges (< 0.5")
- Columns or similar elements not aligned consistently
- Low-contrast text (e.g., light gray text on cream-colored background)
- Low-contrast icons (e.g., dark icons on dark backgrounds without a contrasting circle)
- Text boxes too narrow causing excessive wrapping
- Leftover placeholder content
For each slide, list issues or areas of concern, even if minor.
Read and analyze these images:
1. /path/to/slide-01.jpg (Expected: [brief description])
2. /path/to/slide-02.jpg (Expected: [brief description])
Report ALL issues found, including minor ones.
验证循环
- 生成幻灯片 → 转换为图像 → 检查
- 列出发现的问题(如果没有发现,请更批判性地再看一遍)
- 修复问题
- 重新验证受影响的幻灯片 — 一处修复常常会引发另一个问题
- 重复,直到完整一轮检查未发现新问题
在完成至少一个修复并验证的循环之前,不要宣布成功。
转换为图像
将演示文稿转换为单独的幻灯片图像以进行视觉检查:
python scripts/office/soffice.py --headless --convert-to pdf output.pptx
pdftoppm -jpeg -r 150 output.pdf slide
这会创建 slide-01.jpg、slide-02.jpg 等。
在修复后重新渲染特定幻灯片:
pdftoppm -jpeg -r 150 -f N -l N output.pdf slide-fixed
依赖项
pip install "markitdown[pptx]"- 文本提取pip install Pillow- 缩略图网格npm install -g pptxgenjs- 从零创建- LibreOffice (
soffice) - PDF 转换(通过scripts/office/soffice.py自动为沙盒环境配置) - Poppler (
pdftoppm) - PDF 转图像