前言¶
在 DSH 的插件生态中,处理办公文档(docx、xlsx、pptx 等)和扫描件 OCR 是常见需求。旧方案往往依赖第三方库,容易导致进程崩溃或引入风险。dsh-wen 是一个零第三方依赖(仅使用 Node.js 内置模块)的 Office 全家桶插件。它为 DSH 增加了 4 个全局工具,支持读写改转多种格式,并内置中文 PDF 乱码自愈与离线 OCR 能力。其核心设计目标是“装上不让 DSH 崩”。
核心功能¶
插件注册了 4 个全局工具,工具名沿用旧有的 office_read / office_create / office_edit / office_convert。安装后,这些工具无需手动启用或配置路径,即可在所有 profile 的所有新会话中直接调用。
- office_read:读取办公文档,输出为 Markdown、纯文本、JSON 或元数据。支持指定工作表、页码范围、批量盘点等。
- office_create:按扩展名创建文件,内容来源可为 Markdown、表格、工作簿等。
- office_edit:在 zip/XML 级别原地修改已有文件,支持文本替换、插入图片、增删工作表/幻灯片等。
- office_convert:读取 source,按统一内容模型写出 target,实现格式互转。
支持的格式包括 docx、xlsx、pptx、pdf、odf、csv、html 以及 legacy OLE2 格式(如 .doc/.xls/.ppt)。
安装与启用¶
通过 DSH 的包管理器安装:
dsh plugin --profile web add github:17897693/dsh-wen
安装后,插件会挂载至 ${DSH_HOME}/plugins/dsh-wen/,并通过 cordis.patch.yml 自动生效。检查配置是否生效可运行:
dsh --profile web --dump-config
典型用法¶
读取文档¶
读取 Word 文档并转换为 Markdown:
office_read path="D:\报告.docx"
读取 Excel 的指定工作表:
office_read path="D:\台账.xlsx" sheet="明细"
读取 PDF 的前 5 页:
office_read path="D:\讲义.pdf" pages="1-5"
创建文件¶
创建一个新的 Word 文档:
office_create path="D:\汇总.docx" markdown="# 标题\n- 要点\n\n| A | B |\n| --- | --- |\n| 1 | 2 |"
编辑与转换¶
原地替换文档中的文本:
office_edit path="D:\报告.docx" operations=[{op:"replace_text",find:"旧",replace:"新"}]
将 Excel 转换为 CSV:
office_convert source="D:\台账.xlsx" target="D:\台账.csv"
扫描件 OCR¶
对扫描件 PDF 进行自动识别:
office_read path="D:\扫描件.pdf"
平台与能力说明¶
- Windows x64:拥有完整能力,包含内嵌的 RapidOCR 引擎(用于扫描件离线 OCR)与基于 WinRT 的高质量 PDF 渲染。
- 其他平台:OCR 与高质量 PDF 渲染功能会自动降级为纯 JavaScript 能力,但仍支持基本的读写与转换。
注意事项¶
- 插件仅使用 Node.js 内置模块,不引入任何第三方依赖,旨在确保安装后不会导致 DSH 进程崩溃。
- 详细的技术文档和更新日志位于仓库的 SKILL.md、CHANGELOG.md 和 DEVELOPMENT.md。
总结¶
dsh-wen 提供了一套稳定、零依赖的 Office 文档处理方案。对于需要处理 PDF 乱码或扫描件 OCR 的场景,该插件提供了本地化、离线的解决方案。完整参数说明与已知边界请参考其 GitHub 仓库。