
OfficeCLI 插件系统如何扩展支持 .doc、.hwpx、.pdf 等非内置格式【免费下载链接】OfficeCLIOfficeCLI is the first and best Office suite purpose-built for AI agents to read, edit, and automate Word, Excel, and PowerPoint files. Free, open-source, single binary, no Office installation required.项目地址: https://gitcode.com/GitHub_Trending/of/OfficeCLIOfficeCLI 是面向 AI 代理的开源 Office 套件核心只内置 .docx / .xlsx / .pptx 三种格式。遇到 .doc 旧档、韩国的 .hwpx 文件或想把文档导出成 PDF 时OfficeCLI 插件系统就能通过独立进程补齐格式能力而不用为每种格式改核心代码或捆绑沉重依赖。.doc 旧文件与 .hwpx 打不开核心保持轻量格式交给插件想象两个真实场景你从邮箱里收到一份 2008 年的 .doc 会议纪要想让它进 AI 工作流或者你拿到了韩国同事用 HWP 生态产出的 .hwpx 报表本地没有任何软件能读。OfficeCLI 主程序故意不内置这些格式legacy 格式.doc、.rtf、.odt解析器很重且用户群在萎缩区域格式.hwpx、.hwp由社区维护导出目标.pdf、.epub的渲染库存在体积或许可证约束。把格式支持剥离成独立进程主二进制保持单一、轻量各插件还可以带自己的许可证——包括闭源实现。三类 OfficeCLI 插件的分工一次性转换、单向导出、全程托管插件系统定义了三种类型每种有固定的职责、生命周期和通信方式。搞清楚分工选插件时就不会选错方向。Dump-Reader把外来格式翻译成原生格式当你打开一个 .doc 文件主程序先在同目录找是否已有转换好的 .docx 伴生文件没有才启动插件解析源文件。插件逐行向标准输出写 add / set 命令JSONL 格式主程序重放这些命令生成 docx随后退出。这是一次性任务结果可缓存复用源文件更新会自动使缓存失效。Exporter把原生格式导出为 PDF 等目标格式Exporter 是单向的执行类似officecli view file pdf --out path的命令后主程序把源文件路径和目标路径交给插件。插件只读地打开 docx / xlsx / pptx用自己的库渲染出目标文件成功即退出 0。没有命令词汇表也不建长连接就是一次普通的命令行调用诊断信息走 stderr。Format-Handler整个会话托管一种格式Format-Handler 最彻底像 .hwpx 这种要一等支持、可读可写的格式就用它。主程序带文件路径启动插件后双方通过 stdin/stdout 维持长连接先完成 open 握手插件回报能力与词汇表快照之后 add、set、save 等每个操作都变成一条 IPC 消息会话结束主程序发送 close插件把未落盘内容冲刷干净再退出。manifest 里必须声明它支持的命令词汇表供发现与帮助输出使用。插件发现优先级一览4 级查找第一个命中就生效知道三类插件各管什么之后剩下的问题是主程序怎么知道该调哪一个。当它需要处理(kind, ext)组合时按固定顺序查找先命中先生效环境变量例如$OFFICECLI_PLUGIN_DUMP_READER_DOC值为插件可执行文件的绝对路径用户插件目录~/.officecli/plugins/kind/ext/plugin(.exe)捆绑插件目录即主程序所在目录下的plugins/kind/ext/plugin(.exe)PATH 中名为officecli-kind-ext或officecli-ext的可执行文件目录命名有约定kind 用 kebab-casedump-reader、exporter、format-handlerext 是去掉点的前缀doc、hwpx、pdf。装好插件后跑一条officecli plugins list就能确认当前解析结果。安装本身一步到位officecli plugins install plugin-name安装器从插件注册表拉取经过校验的版本与哈希放到发现路径中即可工作。十分钟读懂插件协议一段 --info 自报与一个超时预算所有插件的第一项义务是响应--info向标准输出打印一个 JSON 对象并退出 0这就是它的 manifest。以 .doc 转换插件为例{ name: officecli-doc, version: 1.0.0, protocol: 1, kinds: [dump-reader], extensions: [.doc], target: docx, runtime: dotnet, idle_timeout_seconds: { default: 60, verbs: { dump: 30 } } }看懂这段 manifest协议就懂了一大半。三点补充JSONL 是一切通信的底座每行一个 JSON 对象、\n结尾、逐行 flush。逐行输出让宿主能在大文件上持续看到有活动也限制了主程序的内存占用。idle_timeout_seconds 约束的是空闲而非总时长看门狗在指定秒数内观察不到 stdout 字节、RPC 回复或 stderr 心跳时才会杀掉整个插件进程树长任务只要持续输出或定期发心跳就安全。退出码是约定的一部分0 成功、2 输入文件损坏、4 许可证失效、5 协议版本不匹配未文档化的非零码会被当作插件 bug 上报。高频疑问一次说清QOfficeCLI 插件可以用什么语言开发A任意支持标准输入输出的语言C#、Go、Rust、Python 均可。Q插件卡死或崩溃了怎么办A空闲看门狗超时会强制终止进程崩溃按退出码上报不会写出坏文件。Q闭源或商业插件允许吗A允许。插件是独立二进制许可证自定许可校验失败时以退出码 4 终止。Q怎么调试、怎么调超时A诊断可写--log-file设OFFICECLI_PLUGIN_IDLE_TIMEOUT_SECONDS覆盖看门狗预算。动手先跑一条命令再读一份协议三类插件对应三种需求迁移旧格式选 Dump-Reader出 PDF 选 Exporter深度支持 .hwpx 这类格式选 Format-Handler。你现在就可以做两件事先跑officecli plugins list看看本机有哪些插件已被发现然后给某个 .doc 文件配一个 dump-reader 插件再跑一次导出 PDF 的命令体验完整链路。更完整的字段定义、心跳机制与会话状态机都写在仓库内的插件协议文档 plugins/plugin-protocol.md 里写插件前通读一遍它比读任何教程都值。【免费下载链接】OfficeCLIOfficeCLI is the first and best Office suite purpose-built for AI agents to read, edit, and automate Word, Excel, and PowerPoint files. Free, open-source, single binary, no Office installation required.项目地址: https://gitcode.com/GitHub_Trending/of/OfficeCLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考