演示文稿助手:在 Agent 里完成 .pptx 的创建、修改与校验

前言

做汇报材料时,常见路径是:在 PowerPoint 里手调版式,或让模型生成一段文字再自己贴进幻灯片。.pptx 本质是 ZIP 包里的 OOXML,改一页往往要碰布局、关系表、图表 XML 等多处;用脚本从零写 deck,还容易踩颜色格式、图表轴声明等坑,文件一打开就报损坏。

下面介绍 SkillHub 上的「演示文稿助手」(@org-02qudk26/pptx)。它把创建、编辑、读取演示文稿的流程写进 Agent Skill:按任务选 pptxgenjs 或解包改 XML,并附带缩略图、增删页、校验等脚本,目标是少做重复操作、产出可直接打开的 .pptx。

这是什么

「演示文稿助手」是面向办公效率的 Agent Skill,坐标 @org-02qudk26/pptx,当前版本 1.0.0。SkillHub 页面由发布方 智雨科技(org-02qudk26,企业认证)维护;简介为:用于制作和修改演示文稿,帮助用户减少重复操作并得到可直接使用的结果。

Skill 采用通用 SKILL.md 格式。包内说明指出,内容整理自 GitHub 仓库 anthropics/skills 的 skills/pptx 目录,不代表原作者或 SkillHub 官方背书;使用前需自行核对许可证与条款。SkillHub 分类为 office-efficiency,子类包含「PPT 生成」「流程自动化」;标签 requires_api_key=false,无需额外 API Key。

核心功能

Skill 在描述中约定:只要任务涉及 .pptx 或 .potx(输入、输出或两者),包括新建 deck、解析提取文字、改稿、合并拆分、模板与备注批注等,都应启用本 Skill。

按任务类型,官方文档归纳如下:

任务 做法
新建演示文稿 编写 pptxgenjs 脚本生成
编辑现有文件或基于模板 解包 → 改 ppt/slides/slideN.xml → 再打包
读取内容 markitdown deck.pptx;版式预览可用缩略图脚本

随 Skill 提供的脚本(路径相对 Skill 根目录)包括:

  • scripts/thumbnail.py:生成带页码标注的幻灯片网格,便于挑模板版式。
  • scripts/add_slide.py:复制幻灯片或版式,并处理包内关系。
  • scripts/clean.py:在定稿 <p:sldIdLst> 后清理未引用的页、媒体与关系。
  • scripts/office/validate.py:校验 schema、关系、图表等;从模板衍生时建议加 --original。
  • scripts/office/soffice.py:LibreOffice 无头转换(如转 PDF)。

文档还包含 pptxgenjs 常见陷阱(布局尺寸、十六进制颜色、图表双轴、写盘后校验等)、模板填充时的 OOXML 注意点,以及配色与版式的设计约束。交付前要求做内容 QA(markitdown)、文件 QA(validate.py)和视觉 QA(转图检查溢出与对齐)。

安装与启用

先确认本机已安装 SkillHub CLI;未安装时可按官方安装说明执行完整安装或仅 CLI:

command -v skillhub && skillhub --version
curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

安装 Skill 时必须用 --dir 指向当前 Agent 的 skills 目录,否则默认落在 ./skills/ 且 Agent 可能识别不到。本 Skill 的安装坐标为 @org-02qudk26/pptx:

skillhub install pptx --namespace org-02qudk26 --dir <你的 skills 目录>

常见客户端路径示例(以 SkillHub 安装文档为准):

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或项目下的 .agents/skills/

安装完成后需按各客户端要求重启或刷新,使 Skill 被加载。

典型用法

1. 从零生成并校验

文档要求:环境已预装 pptxgenjs,直接 require 即可;生成后运行校验脚本。示意流程如下(具体图表与版式由你的脚本实现):

node your-deck-script.js    # 脚本内使用 pptxgenjs 写出 output.pptx
python scripts/office/validate.py output.pptx
markitdown output.pptx

2. 基于模板解包编辑

选版式时先打缩略图,并为每个 deck 使用不同的 prefix,避免默认 thumbnails 互相覆盖:

python scripts/thumbnail.py template.pptx template-thumbs
python3 -c "import sys,zipfile; zipfile.ZipFile(sys.argv[1]).extractall('unpacked')" deck.pptx
python scripts/add_slide.py unpacked/ slide2.xml --after slide2.xml
python scripts/clean.py unpacked/
(cd unpacked && rm -f ../out.pptx && zip -Xr ../out.pptx .)
python scripts/office/validate.py out.pptx --original deck.pptx

3. 视觉检查

将演示文稿转为 PDF 再导出 JPEG,便于逐页检查文字是否裁切、元素是否重叠:

python scripts/office/soffice.py --headless --convert-to pdf output.pptx
rm -f slide-*.jpg
pdftoppm -jpeg -r 150 output.pdf slide

依赖方面,Skill 文档列出:pptxgenjs、markitdown[pptx]、Pillow、defusedxml、lxml、LibreOffice(soffice)、pdftoppm(Poppler)等;Node 侧在 require 失败时再按需 npm install。

适用场景与注意

适合谁:需要在对话里完成「要做一页汇报 / 改客户给的 pptx / 从模板填内容」的开发者或产品、运营;希望 Agent 按固定流程解包、脚本校验,而不是只输出 Markdown 让你手工粘贴。

限制与注意:

  • README 写明面向非技术用户的工作效率场景,但 Skill 正文偏工程向(OOXML、pptxgenjs、命令行 QA),实际仍依赖 Agent 与本地依赖是否齐全。
  • 若使用 python-pptx,文档指出其不能可靠复制幻灯片、不能通过 text_frame.text = 保留样式,且对部分 SVG/EMF 素材支持有限。
  • 模板衍生务必在 validate.py 中加 --original,避免把模板自带的 XSD 问题误判为本次修改引入。
  • 旧版 .ppt 需先经 soffice.py 转为 .pptx 再处理。

结尾

「演示文稿助手」把 .pptx 的创建、编辑、读取和交付前 QA 收敛成一套可复现步骤,适合挂在 Cursor 等支持 Skill 的 Agent 上处理 deck 类任务。官方入口:

  • SkillHub 页面:https://www.skillhub.cn/skills/org-02qudk26/pptx
  • API 坐标:https://api.skillhub.cn/org-02qudk26/pptx

安装说明:https://skillhub.cn/install/skillhub.md

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜