SuperAPI AI 工具集

pptx-skill

办公与效率

查看项目

更新于 10-16 10:30

技能介绍

PPTX Skill 是一个 PowerPoint 转换技能,主要用于将 HTML 幻灯片转换为 PowerPoint 演示文稿文件,并支持对 PPTX 的编辑与缩略图生成。

一、用途 当需要生成 PPTX、编辑 PPTX,或为演示文稿创建缩略图时,可使用该技能。其核心场景是将 HTML 幻灯片转换成可交付的 PPTX 文件。

二、主要能力

  1. 新建演示文稿(HTML → PPTX):将 HTML 幻灯片文件转换为 PowerPoint 文件。
  2. 编辑现有演示文稿:修改 PPTX 文件内容。
  3. 缩略图生成:为演示文稿生成预览图。

三、核心工作流(HTML → PPTX)

  1. 准备 HTML 幻灯片:在 slides/ 目录中确认 HTML 文件,并验证每个文件是否为 720pt × 405pt(16:9)规格。
  2. 运行 html2pptx.js: node .claude/skills/pptx-skill/scripts/html2pptx.js
  3. 验证结果:检查生成的 PPTX 文件,并通过缩略图进行视觉验证。

四、脚本使用方式

  1. html2pptx.js:将 HTML 文件转换为 PPTX。 import { html2pptx } from './.claude/skills/pptx-skill/scripts/html2pptx.js'; import PptxGenJS from 'pptxgenjs'; const pres = new PptxGenJS(); pres.layout = 'LAYOUT_WIDE'; // 16:9 await html2pptx('slides/slide-01.html', pres); await html2pptx('slides/slide-02.html', pres); await pres.writeFile({ fileName: 'presentation.pptx' });

  2. thumbnail.py:生成演示文稿缩略图网格。 python .claude/skills/pptx-skill/scripts/thumbnail.py presentation.pptx output-thumbnail 选项:--cols N(列数,默认 5,范围 3-6)、--outline-placeholders(显示占位符区域)。

  3. pack.py / unpack.py:PPTX 文件打包/解包。 解包:python .claude/skills/pptx-skill/ooxml/scripts/unpack.py presentation.pptx output_dir 打包:python .claude/skills/pptx-skill/ooxml/scripts/pack.py input_dir presentation.pptx

  4. validate.py:校验 PPTX 结构。 python .claude/skills/pptx-skill/ooxml/scripts/validate.py unpacked_dir --original presentation.pptx

五、详细文档

  • html2pptx.md:HTML 到 PPTX 转换详细指南。
  • ooxml.md:Office Open XML 技术参考。

六、PptxGenJS 核心规则

  1. 颜色代码:正确用法为不带 #,如 { color: 'FF0000' };错误用法为带 #,如 { color: '#FF0000' },会导致文件损坏。
  2. 添加幻灯片与元素: const slide = pres.addSlide(); slide.addText('标题', { x: 0.5, y: 0.5, w: 9, h: 1, fontSize: 36, color: '1a1a2e', bold: true }); slide.addImage({ path: 'image.png', x: 1, y: 2, w: 4, h: 3 }); slide.addShape(pres.ShapeType.rect, { x: 0.5, y: 1, w: 3, h: 2, fill: { color: '1e3a5f' } });
  3. 添加图表: slide.addChart(pres.ChartType.bar, [{ name: '系列 1', labels: ['A', 'B', 'C'], values: [10, 20, 30] }], { x: 1, y: 2, w: 8, h: 4 }); 亦支持饼图 pres.ChartType.pie、折线图 pres.ChartType.line 等。

七、完整转换流程 HTML 幻灯片(slides/*.html)→ html2pptx.js(Playwright + PptxGenJS)→ PPTX 文件(presentation.pptx)→ thumbnail.py(预览)。

八、依赖 Node.js:pptxgenjs(生成 PowerPoint)、playwright(浏览器渲染)、sharp(图像处理)。 Python:markitdown(Markdown 转换)、defusedxml(XML 解析)、pillow(图像处理)。 系统:LibreOffice(PDF/图像转换,soffice)、Poppler(PDF 转图像,pdftoppm)。

九、注意事项

  1. 颜色代码:PptxGenJS 中禁止使用 # 前缀。
  2. 字体:仅使用 Web 安全字体。
  3. 文本:仅转换 p、h1-h6、ul、ol 标签。
  4. 渐变:CSS 渐变以图像替代。
  5. 验证:转换后必须通过缩略图确认。

十、适用场景与限制 适用于需要批量将 HTML 幻灯片转为 PPTX、编辑现有演示文稿或生成缩略图预览的工作流;支持基于幻灯片规格验证与结构校验,但仅限上述标签的文本转换、要求 Web 安全字体并需注意颜色写法。其他平台支持、收费与价格等信息暂未提供。