mcpField
P
pptx

pptx

github.com/nogataka文档处理3048 次安装32 周前更新
代码仓库

关于 pptx

pptx 是用于读取、编辑和创建 PowerPoint 演示文稿的技能,面向制作或检查幻灯片的用户。它涵盖基于模板的编辑、从头创建,以及设计和质量检查流程。

主要功能

  1. 01提取演示文稿文本
  2. 02生成幻灯片缩略图
  3. 03基于模板编辑演示文稿
  4. 04使用 PptxGenJS 创建演示文稿
  5. 05检查内容与视觉布局

适用场景

  1. 01检查现有演示文稿的文本和布局
  2. 02保留模板并修改幻灯片
  3. 03在没有参考演示文稿时创建幻灯片

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nogataka/slidekit --skill pptx

安装后在 Claude Code 中输入/pptx确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

editing.md
LICENSE.txt
pptxgenjs.md
scripts/
__init__.py
add_slide.py
clean.py
scripts/office/
pack.py
scripts/office/helpers/
__init__.py
merge_runs.py
simplify_redlines.py
scripts/office/schemas/ecma/fouth-edition/
opc-contentTypes.xsd
opc-coreProperties.xsd
opc-digSig.xsd
opc-relationships.xsd
scripts/office/schemas/ISO-IEC29500-4_2016/
dml-chart.xsd
dml-chartDrawing.xsd
dml-diagram.xsd
dml-lockedCanvas.xsd
dml-main.xsd
dml-picture.xsd
dml-spreadsheetDrawing.xsd
dml-wordprocessingDrawing.xsd
pml.xsd
shared-additionalCharacteristics.xsd
shared-bibliography.xsd
shared-commonSimpleTypes.xsd
shared-customXmlDataProperties.xsd
shared-customXmlSchemaProperties.xsd
shared-documentPropertiesCustom.xsd
shared-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 了解完整细节。

  1. 使用 thumbnail.py 分析模板
  2. 解包 → 操作幻灯片 → 编辑内容 → 清理 → 打包

从零开始创建

阅读 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。选择一款有个性的标题字体,并搭配一款简洁的正文字体。

标题字体正文字体
GeorgiaCalibri
Arial BlackArial
CalibriCalibri Light
CambriaCalibri
Trebuchet MSCalibri
ImpactArial
PalatinoGaramond
ConsolasCalibri
元素字号
幻灯片标题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 当作查找错误,而不是确认步骤。如果首次检查时没有发现任何问题,那就说明你检查得还不够仔细。

结构 QA(仅限 PptxGenJS)

使用 PptxGenJS 从头创建时,生成后务必立即运行修复脚本。PptxGenJS v4.x 存在 14 个已知问题,会触发 PowerPoint 的修复对话框,包括:多余的 slideMaster 条目、rect 预设中的无效 adj 引导、背景中缺少 <a:effectLst/>、空的 <a:ln> 元素、文本运行之间放置错误的 <a:pPr>、缺少 slideMaster 背景、presentation.xml 中的元素顺序错误、无效的 prst="oval"(应为 "ellipse")、notesMaster 主题共用(需要单独的 theme2.xml),以及重复图片触发“内容已删除”对话框。

python fix_pptx.py output.pptx

有关涵盖所有已知问题的完整修复脚本,请参阅 pptxgenjs.md 第 #9 项。所有使用 PptxGenJS 生成的文件都必须执行此步骤。

内容 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.
验证循环
  1. 生成幻灯片 → 转换为图片 → 检查
  2. 列出发现的问题(如果没有发现问题,就更严格地重新检查)
  3. 修复问题
  4. 重新验证受影响的幻灯片 — 一项修复往往会引发另一个问题
  5. 重复以上步骤,直到完整检查一遍后不再发现新问题

至少完成一轮修复与验证循环后,才能宣布成功。


转换为图片

将演示文稿转换为单张幻灯片图片,以便进行视觉检查:

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 转换为图片

评论

支持 Markdown