doa-pptlisted
Install: claude install-skill medalsoftchina/workcopilot
# HTML to PPTX — 商务演示文稿生成
## 工作流概览
```
用户输入(描述 + 参考图)
→ 确认PPT规模
→ 使用公司模板(唯一默认模板)
→ 生成可翻页 HTML 预览
→ 逐页检查 HTML 是否越界/裁切/重叠
→ 用户确认/调整 HTML
→ 只有用户明确确认 HTML 无问题后,才进入 PPT 模式选择
→ 默认推荐截图高保真模式(用户如需二次编辑再切换到可编辑)
→ 生成 PPT
```
## 本次实战经验固化
当用户提供 PDF、截图、既有 HTML 或已有 PPT,并要求“基于这个继续生成 / 整合 / 扩展 / 转 PPT”时,必须先把资料链路整理清楚,再改版式。
### 2026-05-30 延峰项目增补(强制)
1. **HTML 是唯一语义源**:`slides.html` 才是可维护源文件;截图型 `.pptx/.pdf` 只作为交付物,不作为反向编辑来源。
2. **双导出链路必须物理分离**:
- 截图高保真:`export_pptx.py`
- 可编辑重建:`export_editable_pptx.py`
- 严禁在同一脚本里混合两种导出逻辑,避免需求反复切换时互相污染。
3. **需求切换优先级规则**:当用户在“可编辑 / 不可编辑”之间反复切换时,始终以“最后一次明确指令”为准,立即切换导出模式,不纠缠历史决策。
4. **先定稿再导出**:只有在用户明确确认“按当前 HTML 导出”后,才执行最终导出;导出阶段不再顺手改布局,避免一边改版一边导出导致版本漂移。
5. **输出文件不得覆盖旧版本**:每次最终交付使用新文件名(建议带日期和后缀,如 `_Editable_YYYYMMDD`、`_HD_YYYYMMDD`),防止 `PermissionError` 和历史交付丢失。
6. **导出后必须二次验证**:至少校验文件存在、页数一致、截图分辨率正确(高清链路应为 `2560×1440`),再对外宣称“已完成交付”。
### 资料驱动型 PPT 的处理顺序
1. **先定位源材料**:在工作区搜索 `.pdf`、`.html`、`.pptx`、生成脚本和相关资源,确认哪一个是主源文件、哪一个是导出结果。
2. **PDF 先提取文本,失败再转图片阅读**:优先用 `pypdf/pdfplumber`;如果每页文本为空,说明多半是扫描型 PDF,应使用 PyMuPDF 渲染为图片后逐页查看。
3. **先总结再入页**:不要把 PDF 原文堆进 PPT。先提炼为“调研范围 → 候选路线 → 选型结论 → 当前方案”的决策链路。
4. **封面优先确认**:封面通常是客户第一眼看到的页面。若用���要求“第 N 页挪到首页作为封面”,必须同步调整 `active` 状态、`data-index` 和页码。
5. **插入/删除页面后整体重编号**:任何插页、删页、重排都要统一更新以下内容,缺一不可:
- 每页 `data-index` 属性(从 0 连续递增)
- 每页 `.page-no` 页码(当前页 / **新总数**)
- 目录页中对应条目的增删和序号重编
- HTML 注释中的页码标注(如 `<!-- P7: xxx -->`)
- 使用 `multi_replace_string_in_file` 一次性完成所有页码更新,避免遗漏
### 技术方案类 PPT 推荐叙事结构
对于架构