# icutool-ppt **Repository Path**: plusboy/icutool-ppt ## Basic Information - **Project Name**: icutool-ppt - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-17 - **Last Updated**: 2026-05-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # icutool-ppt-rewrite 一个纯前端的 PPTX 模板图片替换工具。当前版本会直接读取项目根目录下的 `template.pptx`,并在浏览器本地完成: - 解压 PPTX 并识别每一页中的图片对象 - 左侧预览页面并高亮可替换区域 - 右侧生成对应的图片上传卡片 - 按 `cover` 规则裁切上传图片 - 直接替换 PPTX 内部媒体引用并导出新文件 ## 技术栈 - Vue 3 - Vite - TypeScript - JSZip - fast-xml-parser - file-saver ## 本地启动 ```bash npm install npm run dev ``` ## 构建 ```bash npm run build ``` ## 当前实现说明 - 解析 `ppt/slides/slide*.xml` 与对应 `.rels`,识别可替换图片区域 - 通过对象 URL 在浏览器中渲染模板原图与替换预览 - 导出时不重建整份 PPT,而是为替换区域写入新的 `ppt/media/*.png`,并更新对应关系文件 - 如果同一原图在多个区域复用,当前实现会为每个已替换区域单独生成新的媒体文件,避免互相覆盖 - 第 1、2、4、7、13、14、15 页忽略检测,其余页面只检测图片,不做文本块解析 ## 已知边界 - 页面预览当前只渲染背景与图片,用于定位替换区域,不追求 1:1 还原 Office 显示效果 - 对部分极端复杂的 WPS/Office 图形结构仍可能需要继续补兼容逻辑 - 当前默认导出为 PNG,并采用 `cover` 裁切规则