用途:从零手工制作原生可编辑的 .pptx。做法是每页幻灯片手写一个 SVG,再用技能内附带的离线 svg_to_pptx 转换器合成整套演示文稿。每个形状在 PowerPoint、Keynote、WPS 中保持原生可编辑,不依赖 LibreOffice,也不会生成由模型渲染的图片型幻灯片。
读取或修改已有演示文稿:直接使用 python-pptx,不必走 SVG 创作流程。python-pptx 已固定在本技能的 pyproject.toml 中,需先搭建工作项目,再通过 uv run 调用,例如用 Presentation(path) 打开文件,遍历 prs.slides 与 slide.shapes 提取文字、表格或图片,原地编辑后 prs.save('out.pptx')。
运行约定:uv 必须在 PATH 上,所有 Python 都经 uv run 执行。技能目录在应用包内只读,切勿写入;所有工作放在新的工作目录中。若缺少 uv,应停止并报告其为环境问题,不要回退到系统 pip。
创作规则(硬性下限):每个 SVG 必须使用 viewBox="0 0 1280 720"(16:9);每页一个 SVG 放在 deck/svg_output/,以零填充序号前缀命名,按文件名顺序转换。字号为 SVG px,按每 px 0.75pt 导出;每个 <text> 必须显式设置 font-size,标题至少 60px(45pt),正文至少 24px(18pt),且标题至少为正文 px 的 2 倍。每行视觉文字写一个 <text>。SVG 文本不自动换行,需按每字符约 0.55×字号 px(中日韩约 1.0×)预估宽度并控制在画布内。标题要写结论而非主题标签,每页需有真实视觉对象并变化版面。内容页需配 deck/notes/ 内同名 Markdown 作为演讲者备注。展示数据时用 data-pptx-native="chart" 分组加 metadata JSON 生成原生可编辑图表,类型支持 column、bar、line、pie、doughnut、area;图片用 <image> 标签引用同目录文件并嵌入。
流程与校验:转换前运行 check_text_budget.py 检查文字预算,必须打印 OK;再从含 pyproject.toml 的 work/ 目录运行 svg_to_pptx.py,参数为 deck --only native --no-compat --native-objects -o artifacts/<name>.pptx。交付前先写 artifact-summary.json(含 renderer 与 slides 等键),再运行 check_pptx_assets.py 检查幻灯片数与备注覆盖,按需加 --require-chart 或 --require-media。两道 Gate 都打印 OK 才算完成,缺项须重建源文件而非手改 zip。
限制:不提供自动排版或内容生成;文字需自行控制在画布内;技能目录只读;转换依赖 uv 环境;脚本来自上游 MIT 项目,需随附 VENDORED.md 与 LICENSE。具体收费与价格暂未提供。