DSH PPT 批量处理插件

前言

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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜