SuperAPI AI 工具集

pptx

办公与效率

查看项目

更新于 10-15 07:55

技能介绍

用途

pptx 技能用于在 Claude 中处理 PowerPoint 演示文稿(.pptx 文件),涵盖三类任务:创建新演示文稿、修改现有演示文稿、分析演示文稿内容。.pptx 文件本质上是一个 ZIP 压缩包,内部包含 XML 文件和其他资源,可以读取和编辑。针对不同任务,该技能提供不同的工具和工作流。

主要能力

读取与分析内容

  • 文本提取:若只需读取演示文稿的文本内容,可将文档转换为 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:单张幻灯片内容
  • ppt/notesSlides/notesSlide{N}.xml:每张幻灯片的演讲者备注
  • ppt/comments/modernComment_*.xml:特定幻灯片的批注
  • ppt/slideLayouts/:幻灯片版式模板
  • ppt/slideMasters/:母版幻灯片模板
  • ppt/theme/:主题和样式信息
  • ppt/media/:图像和其他媒体文件

字体与颜色提取

当需要模仿某个示例设计时,应先分析演示文稿的字体和颜色:读取主题文件 ppt/theme/theme1.xml 中的颜色(<a:clrScheme>)和字体(<a:fontScheme>);检查 ppt/slides/slide1.xml 中实际使用的字体(<a:rPr>)和颜色;使用 grep 在所有 XML 文件中搜索颜色(<a:solidFill>、<a:srgbClr>)和字体引用。

从零创建演示文稿

不使用模板创建新演示文稿时,使用 html2pptx 工作流将 HTML 幻灯片转换为 PowerPoint 并精确定位。设计原则要求:在编写代码前先分析内容并选择合适的设计元素,说明设计思路;仅使用网络安全字体(Arial、Helvetica、Times New Roman、Georgia、Courier New、Verdana、Tahoma、Trebuchet MS、Impact);通过大小、粗细和颜色建立清晰的视觉层级;确保可读性(强对比、合适字号、整洁对齐);保持一致性。

调色板选择建议选择 3-5 种协调的颜色(主色 + 辅助色 + 强调色),并确保文本在背景上清晰可读。资料中提供了多组示例调色板,如 Classic Blue、Teal & Coral、Bold Red、Warm Blush、Burgundy Luxury、Deep Purple & Emerald、Cream & Forest Green、Pink & Purple、Lime & Plum、Black & Gold、Sage & Terracotta、Charcoal & Red、Vibrant Orange、Forest Green、Retro Rainbow、Vintage Earthy、Coastal Rose、Orange & Turquoise 等。

视觉细节选项涵盖几何图案、边框与框架处理、排版处理、图表与数据样式、布局创新和背景处理等。布局提示:含图表或表格的幻灯片优先使用两栏布局(全宽标题 + 下方两栏),或使用全幻灯片布局;切勿将图表/表格垂直堆叠在文本下方。

工作流:

  1. 必读——完整阅读 html2pptx.md,不得设置任何范围限制。
  2. 为每张幻灯片创建尺寸正确的 HTML 文件(如 16:9 为 720pt × 405pt)。所有文本内容使用 <p>、<h1>-<h6>、<ul>、<ol>;图表/表格区域使用 class="placeholder"(以灰色背景渲染以便识别);渐变和图标须先用 Sharp 栅格化为 PNG 图像再在 HTML 中引用。
  3. 创建并运行 JavaScript 文件,使用 html2pptx.js 库将 HTML 幻灯片转换为 PowerPoint 并保存:用 html2pptx() 处理每个 HTML 文件,用 PptxGenJS API 向占位区域添加图表和表格,用 pptx.writeFile() 保存。
  4. 视觉验证:生成缩略图并检查布局问题,命令为 python scripts/thumbnail.py output.pptx workspace/thumbnails --cols 4,检查文本截断、文本重叠、定位问题、对比度问题;如有问题则调整 HTML 边距/间距/颜色并重新生成,直至所有幻灯片视觉正确。

编辑现有演示文稿

编辑现有演示文稿中的幻灯片需处理原始 Office Open XML(OOXML)格式:解包 .pptx 文件、编辑 XML 内容、重新打包。工作流:

  1. 必读——完整阅读 ooxml.md(约 500 行),不得设置任何范围限制。
  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>

使用模板创建演示文稿

需要遵循现有模板设计创建演示文稿时,需复制并重排模板幻灯片,然后替换占位内容。工作流:

  1. 提取模板文本并创建视觉缩略图网格:python -m markitdown template.pptx > template-content.md;完整阅读 template-content.md;python scripts/thumbnail.py template.pptx。
  2. 分析模板并将清单保存到文件:查看缩略图网格了解版式、设计模式和视觉结构;创建并保存 template-inventory.md,列出每张幻灯片的索引(0 起始)、版式代码和用途描述。
  3. 基于模板清单创建演示文稿大纲:第一张幻灯片选用介绍或标题模板;其他幻灯片选用安全的文本版式;严格按实际内容匹配版式结构(单栏用于统一叙述,两栏仅用于恰好 2 个不同项目,三栏仅用于恰好 3 个,图文版式仅在有实际图像时使用,引用版式仅用于真实引用);保存 outline.md,包含内容与模板映射。
  4. 使用 rearrange.py 复制、重排和删除幻灯片:python scripts/rearrange.py template.pptx working.pptx 0,34,34,50,52(索引 0 起始,同一索引可重复以复制幻灯片)。
  5. 使用 inventory.py 提取所有文本:python scripts/inventory.py working.pptx text-inventory.json;完整阅读 text-inventory.json。其结构包含幻灯片(slide-0、slide-1 等)、形状(按视觉位置排序)、占位符类型(TITLE、CENTER_TITLE、SUBTITLE、BODY、OBJECT 或 null)、段落属性(文本、项目符号、层级、对齐、段前段后间距、行距、字体名、字号、粗体、斜体、下划线、颜色)等。幻灯片编号形状会被自动排除。

适用场景

  • 需要读取或分析 .pptx 演示文稿的文本、批注、备注、版式、动画、设计元素和复杂格式。
  • 需要从零创建新的 PowerPoint 演示文稿。
  • 需要基于现有模板设计创建演示文稿。
  • 需要编辑现有 PowerPoint 演示文稿的幻灯片内容。

限制

  • 创建演示文稿时仅使用网络安全字体(Arial、Helvetica、Times New Roman、Georgia、Courier New、Verdana、Tahoma、Trebuchet MS、Impact)。
  • 渐变和图标须先用 Sharp 栅格化为 PNG 图像。
  • 编辑现有演示文稿须通过 OOXML 解包/编辑/校验/打包流程,每次编辑后须立即校验。
  • 使用模板时须先建立模板清单,且版式结构须与实际内容数量匹配。
  • 资料未提供该技能的收费、价格、平台支持范围等信息。