前言¶
在自动化流水线或对话式 Agent 里处理 Office 文档,常见做法是各自写脚本、拼 unoconv 或在线 API,环境不一致时格式映射和批量通配符也容易踩坑。下面介绍 SkillHub 上的 LibreOffice Skill(@user_eba395de/libreoffice):把本机 LibreOffice 无界面(headless) 能力和封装脚本写进通用 SKILL.md,让 Agent 在「转 PDF」「批量 docx」「导出 HTML/EPUB」等意图下按同一套步骤执行。
这是什么¶
LibreOffice 是 SkillHub 分类 office-efficiency 下的社区 Skill(来源:community),当前版本 1.1.0,发布者坐标 user_eba395de,页面作者显示为 TanYiLuo。Skill 标签标明 requires_api_key=false,不依赖外部 API Key。
一句话定位:面向 LibreOffice 24.2 办公套件的 headless 命令行操作——文档格式转换、批量处理,以及导出 PDF / HTML / EPUB 等;适用于 Word、Excel、PPT、PDF 之间的互转与批量任务。SkillHub 页面简介与包内 SKILL.md 描述一致。
官方入口:
- API 页:https://api.skillhub.cn/user_eba395de/libreoffice
- 展示页:https://www.skillhub.cn/skills/user_eba395de/libreoffice
(页面统计以 SkillHub 抓取为准:评分 100000,下载 6024。)
核心功能¶
经包内 SKILL.md 核实,Skill 提供两层能力:
- 推荐路径:Skill 目录下的
libreoffice_ops.py,封装安装检测、路径与格式映射,支持五种子命令:convert、batch、merge、extract-text、info。 - 备用路径:直接调用
soffice --headless --convert-to,并给出常见过滤器名(如 PDF 的writer_pdf_Export、HTML 的XHTML Writer File、EPUB 的EPUB等)。
脚本声明的可用目标格式包括:pdf, html, epub, docx, odt, xlsx, ods, pptx, png, jpg, txt, csv。执行前应先检测本机是否已安装 LibreOffice(soffice --version);未安装时 Skill 文档给出了 apt / yum / brew 的安装示例。
Agent 侧触发语义(Skill 原文):用户提到「转换文档」「导出 PDF」「批量转格式」「Word 转 Excel」等时,先确认输入路径与目标格式,再执行命令并回报输出路径或文件。
安装与启用¶
1. 安装 SkillHub CLI(若尚未安装)¶
先检查是否已有 CLI:
command -v skillhub && skillhub --version
未安装时,可按 SkillHub 官方说明执行完整安装(CLI + 默认 Skill):
curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash
仅安装 CLI 时:
curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash -s -- --cli-only
说明见:https://skillhub.cn/install/skillhub.md
2. 安装 LibreOffice Skill 到当前 Agent 的 skills 目录¶
安装技能时必须用 --dir 指向当前 Agent 识别的 skills 目录;否则默认落在 ./skills/,Agent 可能读不到。官方文档列出的路径示例:
- Cursor:
~/.cursor/skills/ - Claude Code:
~/.claude/skills/ - Codex:
~/.codex/skills/或项目下的.agents/skills/
在 Cursor 中可执行:
skillhub install @user_eba395de/libreoffice --dir ~/.cursor/skills/
SkillHub 页面也支持让 AI 按 https://skillhub.cn/install/skillhub.md 安装同一坐标。
3. 本机 LibreOffice¶
Skill 依赖系统已安装的 soffice。检测示例:
soffice --version 2>&1 | head -1
Debian/Ubuntu 可参考 Skill 文档:
sudo apt install -y libreoffice-core libreoffice-writer libreoffice-calc libreoffice-impress
安装或更新 Skill 后,按你所用客户端的要求重启或刷新 Agent,使其加载新 Skill。
典型用法¶
以下示例来自 Skill 包内 SKILL.md,将 <skill_dir> 替换为安装后的 Skill 目录(例如 ~/.cursor/skills/@user_eba395de/libreoffice)。
用 Python 封装脚本(推荐)¶
python3 <skill_dir>/libreoffice_ops.py convert report.docx pdf --outdir /tmp/output
批量把当前目录下 docx 转为 pdf:
python3 <skill_dir>/libreoffice_ops.py batch "*.docx" pdf --outdir /tmp/output
从 PDF 或 Office 文件提取纯文本:
python3 <skill_dir>/libreoffice_ops.py extract-text contract.pdf --outdir /tmp/output
查看文件信息:
python3 <skill_dir>/libreoffice_ops.py info document.docx
直接调用 soffice(备用)¶
单文件 Word 转 PDF:
soffice --headless --convert-to pdf /path/to/document.docx --outdir /tmp/output/
同一文档同时导出 PDF 与 HTML:
soffice --headless \
--convert-to pdf:"writer_pdf_Export" \
--convert-to html:"XHTML Writer File:UTF8" \
/path/to/document.docx \
--outdir /tmp/output/
适用场景与注意¶
适合谁
- 需要在 Agent 对话或本地自动化里完成 Office/PDF 互转、批量导出、抽文本,且希望统一走本机 LibreOffice、不绑定商业转换 API 的团队或个人。
- 已使用 Cursor、Claude Code、Codex 等支持 Skill 目录的客户端,并愿意用 SkillHub 管理技能包。
限制与注意
- Skill 不包含 LibreOffice 本体;
libreoffice_ops.py只调用已安装的套件,版本升级需自行apt upgrade或brew upgrade --cask libreoffice。 - headless 转换大文件时启动较慢;
--headless应放在首位;--outdir未指定时输出到当前工作目录。 - 批量
*.docx依赖 shell 展开通配符。 - 文档中的
javaldx类 Java 警告一般可忽略;乱码时可尝试带:UTF8的文本过滤器;转换失败时建议用 GUI 打开源文件确认是否损坏。
结尾¶
LibreOffice Skill 把 headless 转换命令、格式表和 libreoffice_ops.py 五类操作 收敛进一份 Skill,适合在 Agent 里处理文档批量化任务。安装与坐标以 SkillHub 为准:@user_eba395de/libreoffice,展示页 https://www.skillhub.cn/skills/user_eba395de/libreoffice ,API 页 https://api.skillhub.cn/user_eba395de/libreoffice 。