用途:以编程方式创建、编辑和分析 PowerPoint(.pptx)演示文稿。.pptx 本质是包含 XML 与资源的 ZIP 归档,可通过文本提取、原始 XML 访问或 html2pptx 工作流处理。
主要能力:
- 读取分析:用 python -m markitdown path-to-file.pptx 将文档转为 Markdown 提取文本。批注、演讲者备注、版式、动画、设计元素与复杂格式需解包读取原始 XML,如 python ooxml/scripts/unpack.py <office_file> <output_dir>。关键结构包括 ppt/presentation.xml、ppt/slides/slide{N}.xml、ppt/notesSlides/、ppt/comments/、ppt/slideLayouts/、ppt/slideMasters/、ppt/theme/、ppt/media/ 等。可从 ppt/theme/theme1.xml 的 <a:clrScheme> 与 <a:fontScheme> 提取配色和字体。
- 无模板新建:采用 html2pptx 工作流,为每张幻灯片写 HTML(如 16:9 用 720pt × 405pt),用 html2pptx.js 转换,再用 PptxGenJS API 向占位区添加图表表格,最后用 pptx.writeFile() 保存。要求仅用网络安全字体、注意层级与对比度,渐变和图标先用 Sharp 栅格化为 PNG。图表表格建议整页布局或两栏布局,避免纵向堆叠。
- 模板新建:先用 markitdown 提取模板文本、scripts/thumbnail.py 生成缩略图网格,建立 template-inventory.md 清单,再写 outline.md 与 template_mapping,用 python scripts/rearrange.py template.pptx working.pptx 0,34,34,50,52 复制重排,用 python scripts/inventory.py working.pptx text-inventory.json 提取全部文本。
- 编辑现有文件:解包后编辑 XML(主要为 ppt/slides/slide{N}.xml),每次编辑后用 python ooxml/scripts/validate.py <dir> --original <file> 校验,再 python ooxml/scripts/pack.py <input_directory> <office_file> 打包。
使用方式与限制:需阅读 html2pptx.md 与 ooxml.md 全文;unpack.py 默认位于 skills/pptx/ooxml/scripts/unpack.py,找不到时用 find . -name "unpack.py" 定位;缩略图校验用 python scripts/thumbnail.py output.pptx workspace/thumbnails --cols 4;幻灯片索引为 0 起。其余具体收费、平台与效果暂未提供。