前言¶
在自動化流水線或對話式 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 。