前言¶
DSH(DeepSeek Harness)的「一切皆插件」理念让智能体开发可以复用现成能力。处理 PPT 文件是常见需求:批量生成报价单、替换 Logo、核对内容。手动操作机械且易错,直接用 AI 改原文件又存在覆盖风险。dsh-pptx-batch 插件提供命令行方式,在不打开 PowerPoint 的情况下批量处理 PPTX 文件。
这是什么¶
dsh-pptx-batch 是一个基于 python-pptx 的 DSH 插件,由 feely0208 维护。它提供四个子命令:fill、replace-image、extract-text、info,用于批量填模板占位符、替换图片、提取文本和查看结构信息。插件以只读方式处理输入文件,输出到单独目录,同名文件自动加序号。
核心功能¶
fill:批量填模板占位符¶
按 --set key=value 批量填幻灯片里的 {{key}} 占位符。支持的占位符位置包括文本框、占位符、表格单元格、组合形状。填完后会在 JSON 里给出每份替换了几处、哪个 key 几处,并提示还剩哪些 {{...}} 没给值。
dsh-pptx-batch fill --input ./模板 --out ./已填 \
--set 客户=客户甲 --set 金额=128000 --set 日期=2026-10-24
replace-image:批量换图片¶
把名为 --shape 的图片形状换成 --image 指定的图片。新图比例和原图不同时会被拉伸,裁剪设置沿用原来的,位置尺寸不变、形状名不变。
dsh-pptx-batch replace-image --input ./已填 --out ./换图 \
--shape Logo --image ./logo-新.png
extract-text:提取每页文本¶
提取每页文本:标题 + 正文 + 表格 + 备注。每份 PPT 生成一个同名 .txt 文件,按「第 N 页」分块。
dsh-pptx-batch extract-text --input ./模板 --out ./文本
info:查看结构信息¶
输出每份 PPT 的页数、形状数、图片数。--json 输出结构化结果,方便脚本 / CI 断言。
dsh-pptx-batch info --input ./模板 --json
共同约定¶
- 不修改输入文件,默认输出到
<输入目录>/_输出,可用--out指定。 - 同名文件不覆盖:已存在时自动变成
简报_1.pptx、简报_2.pptx。 - 目录递归处理,自动跳过 PowerPoint 的
~$临时文件和_输出目录。 --json输出结构化结果,出错时退出码非 0 并说明缺什么。
安装与启用¶
安装命令如下:
dsh plugin --profile web add @deepwhale-cn/dsh-pptx-batch
运行依赖本机的 python3 + python-pptx。插件不会替你安装依赖,缺依赖时 CLI 会直接打印安装命令:
python3 -m pip install python-pptx
# macOS 没有 python3 时
brew install python3
典型用法¶
dsh-pptx-batch --help
dsh-pptx-batch --demo # 自造样例 PPT 跑完整流程,打印产物路径
dsh-pptx-batch <action> --input <文件或目录> [--out <目录>] [--json]
--demo 会在系统临时目录里造两份带占位符、表格和图片形状的样例 PPT,依次跑 fill / replace-image / extract-text / info,不动你的任何文件,跑完直接看产物路径就知道它能干什么。
适用场景与注意¶
适合需要批量生成 PPT、替换 Logo、核对内容、提取文本的场景。插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。MIT 许可证,由温州深鲸智能科技有限公司维护。
注意事项¶
- 只支持
.pptx;.ppt老格式、.pptm、加密/需要密码打开的文档不支持。 fill不处理图表文字、SmartArt 文字、图片里的文字、批注、母版/版式上的文字,也不跨段落匹配。fill是字面匹配({{key}},key 大小写敏感,允许{{ key }}这种空格),不支持正则、不支持一次给同名 key 多个值。- 不保证排版 100% 不变:跨 run 的占位符替换会合并该段文字的 run,段落内局部加粗/字号/颜色可能丢失。
replace-image只换图片内容:新图比例和原图不同时会被拉伸(裁剪设置沿用原来的)。extract-text不提取图表数据、SmartArt、页码与母版文字;图片只留位置不留文字(没有 OCR)。info的「形状数」是每页顶层形状数之和(组合形状算 1 个,其内部形状不计入)。- 不是格式转换器:不导出 PDF、不做 OCR、不做批量重命名。
- 全部在本机由 python-pptx 处理,不联网、不上传文件。
总结¶
dsh-pptx-batch 提供了在命令行批量处理 PPTX 文件的能力,适合需要机械但量大、还容易漏的活。它只读输入文件,产物写到单独的输出目录,同名文件自动加序号,不覆盖任何东西。对于需要批量生成报价单、替换 Logo、核对内容或提取文本的场景,是一个实用的工具。
- 目录页:https://www.skillhub.cn/plugins/feely0208/dsh-pptx-batch
- GitHub:https://github.com/feely0208/dsh-pptx-batch