Communitygithub.com

PPTX 演示文稿创建、编辑与分析

创建、编辑和分析演示文稿(.pptx 文件)。当 Claude 需要处理演示文稿时,包括新建、修改内容、处理布局、添加批注或演讲者备注等任务。

PPTX 演示文稿创建、编辑与分析 是什么?

该技能赋予 AI 代理全面处理 PowerPoint 演示文稿的能力,包括从零开始创建全新的 .pptx 文件、基于现有模板创建、编辑已有的演示文稿以及分析其内容。它支持多种工作流程:使用 `html2pptx` 方式通过 HTML 和 JavaScript 精确创建演示文稿;使用 OOXML 格式直接编辑 XML 文件进行精细调整。该技能强调设计原则,包括在创建前分析主题和品牌以选择合适的配色方案和视觉样式。它还提供了用于文本提取(使用 `markitdown`)、文件解包/打包、XML 验证以及生成缩略图进行视觉检查的脚本工具。对于编辑流程,技能要求阅读完整的 ooxml.md 指南,并严格遵循解包、编辑、验证和打包的循环。基于模板的创建模式则要求先分析模板结构并创建详细清单,以指导后续的幻灯片映射和内容填充。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/David-Li0406/meta-skill-evloving/tree/HEAD/AgentSkillOS/data/skill_seeds/pptx

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

PPTX 演示文稿创建、编辑与分析 是做什么的?

概述

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

读取和分析内容

文本提取

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

# 将文档转换为 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。在读取此文件时切勿设置任何范围限制。在继续创建演示文稿之前,完整读取文件内容以获取详细的语法、关键格式规则和最佳实践。
  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 边距/间距/颜色并重新生成演示文稿
    • 重复直到所有幻灯片在视觉上都正确无误

编辑现有 PowerPoint 演示文稿

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

工作流程

  1. 必须 - 读取整个文件:从头到尾完全读取 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 文件中创建并保存模板清单,内容应包括:
      # 模板清单分析
      **幻灯片总数:[计数]**
      **重要提示:幻灯片从 0 开始索引(第一张幻灯片 = 0,最后一张幻灯片 = count-1)**
      
      ## [类别名称]
      - 幻灯片 0:[布局代码(如有)] - 描述/用途
      - 幻灯片 1:[布局代码] - 描述/用途
      - 幻灯片 2:[布局代码] - 描述/用途
      [... 必须逐张列出每张幻灯片及其索引 ...]
      
    • 使用缩略图网格:参考视觉缩略图来识别:
      • 布局模式(标题幻灯片、内容布局、章节分隔页)
      • 图片占位符的位置和数量
      • 跨幻灯片组的设计一致性
      • 视觉层次和结构
    • 此清单文件是下一步选择合适模板所必需的
  3. 基于模板清单创建演示文稿大纲:

    • 查看第 2 步中的可用模板。
    • 为第一张幻灯片选择介绍或标题模板。应该是前几个模板之一。
    • 为其他幻灯片选择安全的、基于文本的布局。
    • 关键:将布局结构与实际内容匹配:
      • 单列布局:适用于统一叙事或单一主题
      • 两列布局:仅当您有正好 2 个不同的项目/概念时使用
      • 三列布局:仅当您有正好 3 个不同的项目/概念时使用
      • 图片+文本布局:仅当您有实际图片要插入时使用
      • 引用布局:仅用于真实人物引言(带有出处),切勿用于强调
      • 切勿使用占位符数量超过您实际内容的布局
      • 如果您有 2 个项目,不要强行将它们放入三列布局
      • 如果您有 4 个或更多项目,请考虑分成多张幻灯片或使用列表格式
    • 在选择布局之前,先计算您的实际内容片段数量
    • 验证所选布局中的每个占位符都将填入有意义的内容
    • 为每个内容部分选择一个代表最佳布局的选项。
    • 保存包含内容和模板映射的 outline.md 文件,以利用可用设计
    • 模板映射示例:

…

[因翻译而截断]

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

David-Li0406/meta-skill-evloving

Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website", "log into", or any browser interaction request.

David-Li0406/meta-skill-evloving

Create technical diagrams using Mermaid syntax for architecture, sequences, ERDs, flowcharts, and state machines. Use for visualizing system design, data flows, and processes. Triggers: diagram, mermaid, architecture diagram, sequence diagram, flowchart, ERD, entity relationship, state diagram, C4 model, component diagram, visualize, draw.

David-Li0406/meta-skill-evloving

Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks

David-Li0406/meta-skill-evloving

Complete color manipulation and green screen effects system. PROACTIVELY activate for: (1) Green screen/chromakey removal, (2) Color grading with LUTs, (3) Color correction (levels, curves, white balance), (4) Colorkey/color removal effects, (5) Hue/saturation manipulation, (6) Color space conversions (BT.709, BT.2020, HDR), (7) Color isolation effects, (8) Teal and orange look, (9) Vintage/film looks, (10) Color keying for transparency. Provides: chromakey and colorkey filters, LUT application (lut3d), curves and levels adjustment, color balance, selective color manipulation, color space handling, HDR tone mapping, professional color grading chains.

David-Li0406/meta-skill-evloving

Convert files and office documents to Markdown. Supports PDF, DOCX, PPTX, XLSX, images (with OCR), audio (with transcription), HTML, CSV, JSON, XML, ZIP, YouTube URLs, EPubs and more.

David-Li0406/meta-skill-evloving

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

David-Li0406/meta-skill-evloving

Build with OpenAI's stateless APIs - Chat Completions (GPT-5, GPT-4o), Embeddings, Images (DALL-E 3), Audio (Whisper + TTS), and Moderation. Includes Node.js SDK and fetch-based approaches for Cloudflare Workers. Use when: implementing chat completions with GPT-5/GPT-4o, streaming responses with SSE, using function calling/tools, creating structured outputs with JSON schemas, generating embeddings for RAG (text-embedding-3-small/large), generating images with DALL-E 3, editing images with GPT-Image-1, transcribing audio with Whisper, synthesizing speech with TTS (11 voices), moderating content (11 safety categories), or troubleshooting rate limits (429), invalid API keys (401), function calling failures, streaming parse errors, embeddings dimension mismatches, or token limit exceeded.

David-Li0406/meta-skill-evloving

Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.

David-Li0406/meta-skill-evloving

Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas

David-Li0406/meta-skill-evloving

Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p, 480p, 360p), multiple formats (mp4, webm, mkv), and audio-only downloads as MP3.

David-Li0406/meta-skill-evloving

Best practices for Remotion - Video creation in React

David-Li0406/meta-skill-evloving

Provides bidirectional translation (Chinese/English), grammar checking, and sentence polishing. Supports specific tense constraints, context-aware tone adjustment, and natural expression optimization. Outputs direct text without formatting.

David-Li0406/meta-skill-evloving

指导如何通过自定义注解(如@Unicom)标识Dubbo接口,利用BeanDefinitionRegistryPostProcessor在启动时扫描并动态注册ReferenceBean,实现RPC调用的封装。

David-Li0406/meta-skill-evloving

生成Python脚本,利用FFmpeg将图片序列按3x3布局合并,或将合并图拆分。要求使用subprocess模块执行命令,并支持用户交互式输入路径。

David-Li0406/meta-skill-evloving

SOP for extracting and analyzing promotional activity details, handling time formatting, location mapping, payment logic, and step-by-step process validation.

David-Li0406/meta-skill-evloving

Specializes in creating TikTok short video scripts using an anthropomorphic 'Chef' perspective to explain wildlife food chains and survival environments, utilizing real field footage.

David-Li0406/meta-skill-evloving

针对TikTok平台,以拟人化视角(如动物作为厨师)创作系列短视频脚本。重点介绍野生动物、食物链及生态环境,要求使用野外实拍素材,风格幽默且具有教育意义。

David-Li0406/meta-skill-evloving

Generates KWL (Know, Want to know, Learned) charts for educational videos, specifically BrainPOP, using simple 7th-grade language and short, concise bullet points.

David-Li0406/meta-skill-evloving

Develops DAX measures to calculate promo and regular volumes and generates a calculated table of dates excluding continuous promo date ranges, handling multiple periods and nulls.

David-Li0406/meta-skill-evloving

Tracks complex, multi-session work using the Beads issue tracker and dependency graphs, and provides persistent memory that survives conversation compaction. Use when work spans multiple sessions, has complex dependencies, or needs persistent context across compaction cycles. Trigger with phrases like "create task for", "what's ready to work on", "show task", "track this work", "what's blocking", or "update status".

相关技能