Skip to content

Claude 官方 PPTX Skill 深度解析

核心功能概览

Claude 官方 PPTX Skill 是一个全面的 PowerPoint 演示文稿处理工具包,支持创建新演示文稿、编辑现有文件、基于模板生成、以及内容分析提取。

+-------------------------------------------------------------------------+
|                     PPTX Skill 核心功能矩阵                              |
+-------------------------------------------------------------------------+
|                                                                         |
|   +-------------------+    +-------------------+    +------------------+ |
|   |  1. 从零创建       |    |  2. 编辑现有       |    |  3. 模板生成     | |
|   |   (html2pptx)     |    |   (OOXML)         |    |   (rearrange)   | |
|   +-------------------+    +-------------------+    +------------------+ |
|                                                                         |
|   +-------------------+    +-------------------+    +------------------+ |
|   |  4. 文本提取       |    |  5. 缩略图生成     |    |  6. 转图片       | |
|   |   (markitdown)    |    |   (thumbnail.py)  |    |   (soffice)     | |
|   +-------------------+    +-------------------+    +------------------+ |
|                                                                         |
+-------------------------------------------------------------------------+

功能定位

维度说明
目标程序化创建、编辑、分析 PowerPoint 演示文稿
核心能力HTML 转 PPT、OOXML 编辑、模板复用、批量处理
技术栈JavaScript (PptxGenJS, html2pptx) + Python (OOXML 操作)
适用场景自动化报告生成、批量演示文稿制作、模板标准化

三大创建/编辑模式

PPTX Skill 根据不同需求提供了三种工作模式:

+-------------------------------------------------------------------------+
|                      PPTX 处理模式决策树                                 |
+-------------------------------------------------------------------------+
|                                                                         |
|                        用户需要做什么?                                  |
|                              |                                          |
|          +------------------+------------------+                         |
|          |                  |                  |                         |
|          v                  v                  v                         |
|   +-------------+    +-------------+    +------------------+            |
|   | 从零创建    |    | 编辑现有    |    | 基于模板创建      |            |
|   | 新演示文稿   |    | 演示文稿    |    | 新演示文稿        |            |
|   +-------------+    +-------------+    +------------------+            |
|          |                  |                  |                         |
|          v                  v                  v                         |
|   +-------------+    +-------------+    +------------------+            |
|   | html2pptx   |    | OOXML 编辑  |    | rearrange.py +   |            |
|   | 工作流       |    | 工作流      |    | replace.py       |            |
|   +-------------+    +-------------+    +------------------+            |
|                                                                         |
+-------------------------------------------------------------------------+

模式一:从零创建新演示文稿 (html2pptx)

这是 PPTX Skill 最强大的功能之一:通过编写 HTML 文件来创建 PowerPoint 幻灯片

核心理念

HTML 文件 (精确布局)  -->  html2pptx.js  -->  .pptx 文件
                              |
                              v
                    Playwright 渲染计算位置
                              |
                              v
                    PptxGenJS 生成 PowerPoint

设计原则(重要!)

Skill 特别强调设计思考要在编码之前进行:

+-------------------------------------------------------------------------+
|                      演示文稿设计原则                                    |
+-------------------------------------------------------------------------+
|                                                                         |
|  1. 分析内容                                                            |
|     - 这个演示文稿是关于什么的?                                        |
|     - 目标受众是谁?                                                    |
|     - 需要什么样的语调和风格?                                          |
|                                                                         |
|  2. 选择配色方案(18种预设可选)                                        |
|     - Classic Blue: 深海军蓝 + 石板灰 + 银色                            |
|     - Teal & Coral: 青色 + 珊瑚色                                       |
|     - Bold Red: 红色渐变系列                                            |
|     - Warm Blush: 暖粉色调                                              |
|     - Burgundy Luxury: 酒红奢华                                         |
|     - ... 更多配色方案                                                  |
|                                                                         |
|  3. 设计视觉元素                                                        |
|     - 几何图案:对角线分隔、不对称列宽、旋转文字                        |
|     - 边框处理:单边厚边框、双线边框、L形边框                           |
|     - 排版处理:极端字号对比、全大写标题、数字突出                       |
|     - 布局创新:全出血图片、侧边栏导航、模块化网格                       |
|                                                                         |
+-------------------------------------------------------------------------+

HTML 幻灯片规范

+-------------------------------------------------------------------------+
|                      HTML 幻灯片关键规则                                 |
+-------------------------------------------------------------------------+
|                                                                         |
|  尺寸规范                                                                |
|  ──────────                                                             |
|  - 16:9 (默认): width: 720pt; height: 405pt                             |
|  - 4:3:         width: 720pt; height: 540pt                             |
|  - 16:10:       width: 720pt; height: 450pt                             |
|                                                                         |
|  文本规则(关键!)                                                      |
|  ──────────────────                                                     |
|  - 所有文本必须在 <p>, <h1>-<h6>, <ul>, <ol> 标签内                     |
|  - 正确: <div><p>文字内容</p></div>                                     |
|  - 错误: <div>文字内容</div>  <-- 文字不会显示!                        |
|  - 错误: <span>文字</span>    <-- 文字不会显示!                        |
|                                                                         |
|  字体限制                                                                |
|  ──────────                                                             |
|  - 只能使用 Web 安全字体:                                               |
|    Arial, Helvetica, Times New Roman, Georgia,                          |
|    Courier New, Verdana, Tahoma, Trebuchet MS, Impact                   |
|  - 禁止: Segoe UI, SF Pro, Roboto 等非标准字体                          |
|                                                                         |
|  渐变和图标                                                              |
|  ──────────────                                                         |
|  - 禁止: CSS 渐变 (linear-gradient, radial-gradient)                    |
|  - 必须: 先用 Sharp 将渐变/图标光栅化为 PNG,再在 HTML 中引用            |
|                                                                         |
+-------------------------------------------------------------------------+

完整工作流程

Step 1: 阅读 html2pptx.md 文档(强制要求)
           |
           v
Step 2: 为每张幻灯片创建 HTML 文件
        - 设置正确的尺寸 (720pt x 405pt)
        - 使用正确的标签包裹文本
        - 用 Sharp 预处理渐变和图标
        - 用 class="placeholder" 标记图表位置
           |
           v
Step 3: 运行 html2pptx.js 转换
        - 使用 html2pptx() 函数处理 HTML
        - 用 PptxGenJS API 添加图表
        - 调用 pptx.writeFile() 保存
           |
           v
Step 4: 视觉验证
        - 生成缩略图: python scripts/thumbnail.py output.pptx
        - 检查文字截断、重叠、对比度问题
        - 如有问题,调整 HTML 并重新生成

代码示例

javascript
const pptxgen = require('pptxgenjs');
const html2pptx = require('./html2pptx');

const pptx = new pptxgen();
pptx.layout = 'LAYOUT_16x9';

// 处理每个 HTML 文件
const slides = ['slide1.html', 'slide2.html', 'slide3.html'];

for (const htmlFile of slides) {
    const slide = pptx.addSlide();
    const result = await html2pptx(slide, htmlFile);

    // 如果有图表占位符,添加图表
    if (result.placeholders['chart']) {
        const pos = result.placeholders['chart'];
        slide.addChart(pptx.ChartType.bar, chartData, {
            x: pos.x, y: pos.y, w: pos.w, h: pos.h
        });
    }
}

await pptx.writeFile('presentation.pptx');

模式二:编辑现有演示文稿 (OOXML)

当需要修改现有的 .pptx 文件时,需要直接操作底层的 OOXML 格式。

PPTX 文件结构

presentation.pptx (实际是 ZIP 文件)
|
+-- ppt/
|   +-- presentation.xml     # 主演示文稿元数据
|   +-- slides/
|   |   +-- slide1.xml       # 第1张幻灯片
|   |   +-- slide2.xml       # 第2张幻灯片
|   |   +-- ...
|   +-- notesSlides/
|   |   +-- notesSlide1.xml  # 演讲者备注
|   +-- slideLayouts/        # 布局模板
|   +-- slideMasters/        # 母版
|   +-- theme/
|   |   +-- theme1.xml       # 主题(颜色、字体)
|   +-- media/               # 图片和媒体文件
|   +-- comments/            # 批注
|
+-- [Content_Types].xml
+-- _rels/

编辑工作流程

Step 1: 解包 PPTX
        python ooxml/scripts/unpack.py presentation.pptx ./unpacked
           |
           v
Step 2: 编辑 XML 文件
        - 主要编辑 ppt/slides/slide{N}.xml
        - 修改文字、颜色、位置等
           |
           v
Step 3: 验证修改(每次编辑后立即执行!)
        python ooxml/scripts/validate.py ./unpacked --original presentation.pptx
           |
           v
Step 4: 重新打包
        python ooxml/scripts/pack.py ./unpacked output.pptx

模式三:基于模板创建 (rearrange + replace)

这是最常用的企业场景:使用现有模板,替换内容生成新演示文稿

工作流程详解

+-------------------------------------------------------------------------+
|                      模板工作流程                                        |
+-------------------------------------------------------------------------+
|                                                                         |
|  Step 1: 分析模板                                                       |
|  ────────────────                                                       |
|  python -m markitdown template.pptx > template-content.md               |
|  python scripts/thumbnail.py template.pptx                              |
|                                                                         |
|  Step 2: 创建模板清单                                                   |
|  ────────────────────                                                   |
|  保存到 template-inventory.md,记录每张幻灯片的布局和用途               |
|                                                                         |
|  Step 3: 规划内容大纲                                                   |
|  ────────────────────                                                   |
|  创建 outline.md,映射内容到模板幻灯片索引                              |
|  例如: [0, 34, 34, 50, 52] 表示使用第0、34、34、50、52张模板            |
|                                                                         |
|  Step 4: 重排幻灯片                                                     |
|  ────────────────                                                       |
|  python scripts/rearrange.py template.pptx working.pptx 0,34,34,50,52   |
|                                                                         |
|  Step 5: 提取文本清单                                                   |
|  ────────────────────                                                   |
|  python scripts/inventory.py working.pptx text-inventory.json           |
|                                                                         |
|  Step 6: 创建替换内容                                                   |
|  ────────────────────                                                   |
|  基于 text-inventory.json 创建 replacement-text.json                    |
|  为每个形状定义新的段落内容                                              |
|                                                                         |
|  Step 7: 应用替换                                                       |
|  ────────────────                                                       |
|  python scripts/replace.py working.pptx replacement-text.json output.pptx|
|                                                                         |
+-------------------------------------------------------------------------+

替换文件格式示例

json
{
  "slide-0": {
    "shape-0": {
      "paragraphs": [
        {
          "text": "新标题文字",
          "alignment": "CENTER",
          "bold": true
        }
      ]
    },
    "shape-1": {
      "paragraphs": [
        {
          "text": "副标题内容",
          "font_size": 18.0
        }
      ]
    }
  },
  "slide-1": {
    "shape-0": {
      "paragraphs": [
        {
          "text": "章节标题",
          "bold": true
        },
        {
          "text": "第一个要点",
          "bullet": true,
          "level": 0
        },
        {
          "text": "第二个要点",
          "bullet": true,
          "level": 0
        }
      ]
    }
  }
}

格式化规则

属性说明示例
text文本内容"新标题"
bold粗体true
italic斜体true
bullet项目符号true(自动添加,不要手动加 •)
level缩进级别0(当 bullet 为 true 时必填)
alignment对齐"CENTER", "RIGHT"
font_size字号(磅)14.0
colorRGB 颜色"FF0000"
theme_color主题颜色"DARK_1"

辅助功能

文本提取

bash
# 将演示文稿转为 Markdown
python -m markitdown presentation.pptx > content.md

缩略图生成

bash
# 基础用法
python scripts/thumbnail.py presentation.pptx

# 自定义输出
python scripts/thumbnail.py presentation.pptx my-preview --cols 4

# 输出: my-preview-1.jpg, my-preview-2.jpg(每张最多30张幻灯片)

转换为图片

bash
# 步骤1: PPTX 转 PDF
soffice --headless --convert-to pdf presentation.pptx

# 步骤2: PDF 转图片
pdftoppm -jpeg -r 150 presentation.pdf slide
# 输出: slide-1.jpg, slide-2.jpg, ...

配色方案速查表

PPTX Skill 提供了 18 种精心设计的配色方案:

方案名称主色辅助色适用场景
Classic Blue深海军蓝 #1C2833石板灰 #2E4053商务正式
Teal & Coral青色 #5EA8A7珊瑚色 #FE4447现代活力
Bold Red红色 #C0392B橙色 #F39C12激励演讲
Warm Blush玫瑰色 #A49393奶油色 #FAF7F2柔和优雅
Burgundy Luxury酒红 #5D1D2E金色 #997929奢华高端
Black & Gold黑色 #000000金色 #BF9A4A颁奖典礼
Forest Green森林绿 #1E5128浅绿 #4E9F3D环保自然
Vibrant Orange橙色 #F96D00炭灰 #222831科技创新
Retro Rainbow紫色 #722880多彩渐变复古创意

依赖项

工具安装命令用途
markitdownpip install "markitdown[pptx]"文本提取
pptxgenjsnpm install -g pptxgenjs生成 PPTX
playwrightnpm install -g playwrightHTML 渲染
sharpnpm install -g sharp图像处理
LibreOfficeapt-get install libreofficePDF 转换
Popplerapt-get install poppler-utilsPDF 转图片
defusedxmlpip install defusedxml安全 XML 解析

与其他 Skill 的对比

对比维度DOCX SkillPPTX Skill
文件格式Word 文档PowerPoint 演示文稿
核心挑战追踪修改、批注精确布局、视觉设计
创建方式JavaScript APIHTML 转 PPT
设计考量格式保持配色、排版、动画
技术复杂度OOXML 操作HTML 渲染 + OOXML

总结

PPTX Skill 的核心价值在于提供了三种完整的工作模式来应对不同场景:

  1. html2pptx 模式:从零创建,通过 HTML 实现精确布局控制
  2. OOXML 模式:直接编辑,适合修改现有演示文稿
  3. 模板模式:企业级批量生成,保持品牌一致性
+-------------------------------------------------------------------------+
|                        PPTX Skill 核心价值                               |
+-------------------------------------------------------------------------+
|                                                                         |
|   "演示文稿不仅仅是文字的载体,更是视觉传达的艺术。                        |
|    PPTX Skill 通过 HTML 精确布局 + 18 种配色方案 + 丰富的视觉元素,       |
|    让 Claude 能够创建真正专业级的演示文稿。"                              |
|                                                                         |
+-------------------------------------------------------------------------+

特别提醒

  • 必须先读文档:html2pptx.md 和 ooxml.md 是强制阅读要求
  • 文本标签规则:所有文字必须在 <p>, <h1>-<h6>, <ul>, <ol>
  • 字体限制:只能使用 Web 安全字体
  • 渐变处理:必须先光栅化为 PNG 再引用
  • 验证步骤:编辑后必须立即运行 validate.py

基于 MIT 许可证发布。内容版权归作者所有。