Skip to main content
ClaudeWave
Skill490 repo starsupdated 4mo ago

pptx

This Claude Code skill enables creation, editing, and analysis of PowerPoint presentation files (.pptx). Use it when you need to create new presentations from scratch, modify existing content, extract text and speaker notes, analyze slide layouts and design elements, add comments, or manipulate presentation structure through XML access. The skill provides text extraction via markdown conversion for simple reading tasks and raw XML unpacking for complex operations involving animations, formatting, themes, and media management.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/LeastBit/Claude_skills_zh-CN /tmp/pptx && cp -r /tmp/pptx/skills/pptx ~/.claude/skills/pptx
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# PPTX 创建、编辑和分析

## 概述

用户可能会要求您创建、编辑或分析 .pptx 文件的内容。.pptx 文件本质上是一个包含 XML 文件和其他资源的 ZIP 压缩包,您可以读取或编辑。不同的任务有不同的工具和工作流程可用。

## 读取和分析内容

### 文本提取
如果您只需要读取演示文稿的文本内容,应将文档转换为 markdown:

```bash
# 将文档转换为 markdown
python -m markitdown path-to-file.pptx
```

### 原始 XML 访问
您需要原始 XML 访问来处理:批注、演讲者备注、幻灯片版式、动画、设计元素和复杂格式。对于这些功能,您需要解压演示文稿并读取其原始 XML 内容。

#### 解压文件
`python ooxml/scripts/unpack.py <office_file> <output_dir>`

**注意**:unpack.py 脚本位于相对于项目根目录的 `skills/pptx/ooxml/scripts/unpack.py`。如果脚本不在此路径,请使用 `find . -name "unpack.py"` 来定位它。

#### 关键文件结构
* `ppt/presentation.xml` - 主演示文稿元数据和幻灯片引用
* `ppt/slides/slide{N}.xml` - 单个幻灯片内容(slide1.xml、slide2.xml 等)
* `ppt/notesSlides/notesSlide{N}.xml` - 每个幻灯片的演讲者备注
* `ppt/comments/modernComment_*.xml` - 特定幻灯片的批注
* `ppt/slideLayouts/` - 幻灯片版式模板
* `ppt/slideMasters/` - 母版幻灯片模板
* `ppt/theme/` - 主题和样式信息
* `ppt/media/` - 图片和其他媒体文件

#### 排版和颜色提取
**当提供了要模仿的示例设计时**:始终先使用以下方法分析演示文稿的排版和颜色:
1. **读取主题文件**:检查 `ppt/theme/theme1.xml` 中的颜色(`<a:clrScheme>`)和字体(`<a:fontScheme>`)
2. **采样幻灯片内容**:检查 `ppt/slides/slide1.xml` 中的实际字体使用(`<a:rPr>`)和颜色
3. **搜索模式**:使用 grep 在所有 XML 文件中查找颜色(`<a:solidFill>`、`<a:srgbClr>`)和字体引用

## 创建新 PowerPoint 演示文稿 **不使用模板**

从头开始创建新 PowerPoint 演示文稿时,使用 **html2pptx** 工作流程将 HTML 幻灯片转换为具有精确定位的 PowerPoint。

### 设计原则

**关键**:在创建任何演示文稿之前,分析内容并选择适当的设计元素:
1. **考虑主题**:这个演示文稿是关于什么的?它暗示什么语气、行业或情绪?
2. **检查品牌**:如果用户提到公司/组织,考虑其品牌颜色和形象
3. **将调色板与内容匹配**:选择反映主题的颜色
4. **说明您的方法**:在编写代码之前解释您的设计选择

**要求**:
- ✅ 在编写代码之前说明您基于内容的设计方法
- ✅ 仅使用网页安全字体:Arial、Helvetica、Times New Roman、Georgia、Courier New、Verdana、Tahoma、Trebuchet MS、Impact
- ✅ 通过大小、粗细和颜色创建清晰的视觉层次
- ✅ 确保可读性:强烈对比、适当大小的文本、整洁的对齐
- ✅ 保持一致性:在幻灯片之间重复模式、间距和视觉语言

#### 调色板选择

**创造性地选择颜色**:
- **跳出默认思维**:什么颜色真正匹配这个特定主题?避免自动选择。
- **考虑多个角度**:主题、行业、情绪、能量水平、目标受众、品牌形象(如有提及)
- **大胆尝试**:尝试意想不到的组合 - 医疗保健演示文稿不必是绿色的,金融不必是海军蓝
- **构建调色板**:选择 3-5 种配合良好的颜色(主色 + 辅助色 + 强调色)
- **确保对比**:文本必须在背景上清晰可读

**示例调色板**(用于激发创意 - 选择一个、调整它或创建自己的):

1. **经典蓝**:深海军蓝(#1C2833)、石板灰(#2E4053)、银色(#AAB7B8)、米白(#F4F6F6)
2. **青绿与珊瑚**:青绿(#5EA8A7)、深青绿(#277884)、珊瑚(#FE4447)、白色(#FFFFFF)
3. **大胆红色**:红色(#C0392B)、亮红(#E74C3C)、橙色(#F39C12)、黄色(#F1C40F)、绿色(#2ECC71)
4. **暖腮红**:灰褐色(#A49393)、腮红(#EED6D3)、玫瑰(#E8B4B8)、奶油(#FAF7F2)
5. **酒红奢华**:酒红(#5D1D2E)、深红(#951233)、铁锈(#C15937)、金色(#997929)
6. **深紫与翡翠**:紫色(#B165FB)、深蓝(#181B24)、翡翠(#40695B)、白色(#FFFFFF)
7. **奶油与森林绿**:奶油(#FFE1C7)、森林绿(#40695B)、白色(#FCFCFC)
8. **粉色与紫色**:粉色(#F8275B)、珊瑚(#FF574A)、玫瑰(#FF737D)、紫色(#3D2F68)
9. **青柠与梅色**:青柠(#C5DE82)、梅色(#7C3A5F)、珊瑚(#FD8C6E)、蓝灰(#98ACB5)
10. **黑与金**:金色(#BF9A4A)、黑色(#000000)、奶油(#F4F6F6)
11. **鼠尾草与赤陶**:鼠尾草(#87A96B)、赤陶(#E07A5F)、奶油(#F4F1DE)、炭灰(#2C2C2C)
12. **炭灰与红**:炭灰(#292929)、红色(#E33737)、浅灰(#CCCBCB)
13. **活力橙**:橙色(#F96D00)、浅灰(#F2F2F2)、炭灰(#222831)
14. **森林绿**:黑色(#191A19)、绿色(#4E9F3D)、深绿(#1E5128)、白色(#FFFFFF)
15. **复古彩虹**:紫色(#722880)、粉色(#D72D51)、橙色(#EB5C18)、琥珀(#F08800)、金色(#DEB600)
16. **复古大地**:芥末(#E3B448)、鼠尾草(#CBD18F)、森林绿(#3A6B35)、奶油(#F4F1DE)
17. **海岸玫瑰**:老玫瑰(#AD7670)、海狸(#B49886)、蛋壳(#F3ECDC)、灰绿(#BFD5BE)
18. **橙与青绿**:浅橙(#FC993E)、灰青绿(#667C6F)、白色(#FCFCFC)

#### 视觉细节选项

**几何图案**:
- 对角线分隔代替水平分隔
- 不对称列宽(30/70、40/60、25/75)
- 90° 或 270° 旋转的文本标题
- 图片的圆形/六边形框架
- 角落的三角形装饰形状
- 重叠形状增加深度

**边框和框架处理**:
- 仅一侧的粗单色边框(10-20pt)
- 对比色的双线边框
- 角括号代替完整框架
- L 形边框(上+左或下+右)
- 标题下方的下划线强调(3-5pt 粗)

**排版处理**:
- 极端大小对比(72pt 标题 vs 11pt 正文)
- 大写标题配宽字母间距
- 超大显示字体的编号章节
- 等宽字体(Courier New)用于数据/统计/技术内容
- 窄体字体(Arial Narrow)用于密集信息
- 轮廓文本强调

**图表和数据样式**:
- 单色图表配单一强调色用于关键数据
- 水平条形图代替垂直条形图
- 点图代替条形图
- 最少或无网格线
- 数据标签直接在元素上(无图例)
- 关键指标的超大数字

**布局创新**:
- 带文本叠加的满版图片
- 侧边栏列(20-30% 宽度)用于导航/上下文
- 模块化网格系统(3×3、4×4 块)
- Z 形或 F 形内容流
- 浮动文本框覆盖在彩色形状上
- 杂志风格多栏布局

**背景处理**:
- 占幻灯片 40-60% 的纯色块
- 渐变填充(仅垂直或对角线)
- 分割背景(两种颜色,对角线或垂直)
- 边到边的色带
- 负空间作为设计元素

### 布局提示
**创建带图表或表格的幻灯片时**:
- **两栏布局(推荐)**:使用跨越全宽的标题,然后下方两栏 - 一栏放文本/要点,另一栏放主要内容。这提供更好的平衡,使图表/表格更易读。使用不等列宽的 flexbox(例如 40%/60% 分割)来优化每种内容类型的空间。
- **全幻灯片布局**:让主要内容(图表/表格)占据整个幻灯片以获得最大影响力和可读性
- **切勿垂直堆叠**:不要将图表/表格放在单列中的文本下方 - 这会导致可读性差和布局问题

### 工作流程
1. **必须 - 完整阅读整个文件**:完整阅读 [`html2pptx.md`](html2pptx.md),从头到尾。**阅读此文件时切勿设置任何范围限制。** 在开始创建演示文稿之前,阅读完整文件内容以了解详细语法、关键格式规则和最佳实践。
2. 为每个幻灯片创建具有正确尺寸的 HTML 文件(例如 16:9 为 720pt × 405pt)
   - 使用 `<p>`、`<h1>`-`<h6>`、`<ul>`、`<ol>` 处理所有文本内容
   - 对将添加图表/表格的区域使用 `class="placeholder"`(渲染灰色背景以便可见)
   - **关键**:首先使用 Sharp 将渐变和图标光栅化为 PNG 图片,然后在 HTML 中引用
   - **布局**:对于带图表/表格/图片的幻灯片,使用全幻灯片布局或两栏布局以获得更好的可读性
3. 创建并运行使用 [`html2pptx.js`](scripts/html2pptx.js) 库的 JavaScript 文件,将 HTML 幻灯片转换为 PowerPoint 并保存演示文稿
   - 使用 `html2pptx()` 函数处理每个 HTML 文件
   - 使用 PptxGenJS API 将图表和表格添加到占位符区域
   - 使用 `pptx.writeFile()` 保存演示文稿
4. **视觉验证**:生成缩略图并检查布局问题
   - 创建缩略图网格:`python scripts/thumbnail.py output.pptx workspace/thumbnails --cols 4`
   - 阅读并仔细检查缩略图图片:
     - **文本截断**:文本被标题栏、形状或幻灯片边缘截断
     - **文本重叠**:文本与其他文本或形状重叠
     - **定位问题**:内容太靠近幻灯片边界或其他元素
     - **对比问题**:文本和背景之间对比不足
   - 如果发现问题,调整 HTML 边距/间距/颜色并重新生成演示文稿
   - 重复直到所有幻灯片视觉正确

## 编辑现有 PowerPoint 演示文稿

编辑现有 PowerPoint 演示文稿中的幻灯片时,您需要使用原始 Office Open XML(OOXML)格式。这涉及解压 .pptx 文件、编辑 XML 内容,然后重新打包。

### 工作流程
1. **必须 - 完整阅读整个文件**:完整阅读 [`ooxml.md`](ooxml.md)(约 500 行),从头到尾。**阅读此文件时切勿设置任何范围限制。** 在编辑任何演示文稿之前,阅读完整文件内容以获取有关 OOXML 结构和编辑工作流程的详细指导。
2. 解压演示文稿:`python ooxml/scripts/unpack.py <office_file> <output_dir>`
3. 编辑 XML 文件(主要是 `ppt/slides/slide{N}.xml` 和相关文件)
4. **关键**:每次编辑后立即验证,并在继续之前修复任何验证错误:`python ooxml/scripts/validate.py <dir> --original <file>`
5. 打包最终演示文稿:`python ooxml/scripts/pack.py <input_directory> <office_file>`

## 使用模板创建新 PowerPoint 演示文稿

当您需要创建遵循现有模板设计的演示文稿时,您需要复制和重新排列模板幻灯片,然后替换占位符内容。

### 工作流程
1. **提取模板文本并创建可视化缩略图网格**:
   * 提取文本:`python -m markitdown template.pptx > template-content.md`
   * 阅读 `template-content.md`:阅读整个文件以了解模板演示文稿的内容。**阅读此文件时切勿设置任何范围限制。**
   * 创建缩略图网格:`python scripts/thumbnail.py template.pptx`
   * 有关更多详细信息,请参阅[创建缩略图网格](#创建缩略图网格)部分

2. **分析模板并将清单保存到文件**:
   * **视觉分析**:查看缩略图网格以了解幻灯片版式、设计模式和视觉结构
   * 创建并保存模板清单文件到 `template-inventory.md`,包含:
     ```markdown
     # 模板清单分析
     **总幻灯片数:[count]**
     **重要:幻灯片从 0 开始索引(第一张幻灯片 = 0,最后一张幻灯片 = count-1)**

     ## [类别名称]
     - 幻灯片 0:[版式代码(如有)] - 描述/用途
     - 幻灯片 1:[版式代码] - 描述/用途
     - 幻灯片 2:[版式代码] - 描述/用途
algorithmic-artSkill

使用 p5.js 创建带有种子随机性和交互式参数探索的算法艺术。当用户请求使用代码创建艺术、生成艺术、算法艺术、流场或粒子系统时使用此技能。创作原创算法艺术,而不是复制现有艺术家的作品,以避免版权侵犯。

brand-guidelinesSkill

将 Anthropic 官方品牌颜色和字体应用于任何可能需要 Anthropic 视觉风格的作品。适用于品牌颜色或样式指南、视觉格式化或公司设计标准的场景。

canvas-designSkill

使用设计哲学创作精美的 .png 和 .pdf 格式视觉艺术作品。当用户要求创作海报、艺术品、设计作品或其他静态作品时,应使用此技能。创作原创视觉设计,切勿复制现有艺术家的作品以避免版权侵权。

doc-coauthoringSkill

引导用户通过结构化的工作流程来协作撰写文档。当用户想要撰写文档、提案、技术规格说明、决策文档或类似的结构化内容时使用。这个工作流程帮助用户高效地传递上下文信息、通过迭代优化内容,并验证文档对读者是否有效。当用户提到撰写文档、创建提案、起草规格说明或类似的文档任务时触发。

docxSkill

全面的文档创建、编辑和分析功能,支持修订追踪、批注、格式保留和文本提取。当 Claude 需要处理专业文档(.docx 文件)时使用:(1) 创建新文档,(2) 修改或编辑内容,(3) 处理修订追踪,(4) 添加批注,或其他任何文档任务

frontend-designSkill

创建独特的、生产级别的高质量前端界面。当用户要求构建网页组件、页面、作品、海报或应用程序时使用此技能(例如网站、落地页、仪表盘、React 组件、HTML/CSS 布局,或对任何网页 UI 进行样式美化)。生成富有创意、精致的代码和 UI 设计,避免千篇一律的 AI 审美。

internal-commsSkill

一套帮助我撰写各类内部沟通文档的资源,使用公司偏好的格式。当被要求撰写任何形式的内部沟通文档(状态报告、领导层更新、3P 更新、公司简报、常见问题解答、事件报告、项目更新等)时,Claude 应使用此技能。

mcp-builderSkill

构建高质量 MCP(模型上下文协议)服务器的指南,使 LLM 能够通过精心设计的工具与外部服务交互。在使用 Python (FastMCP) 或 Node/TypeScript (MCP SDK) 构建 MCP 服务器以集成外部 API 或服务时使用。