LibreOffice Skill:在 Agent 裏用 headless 做文檔轉換與批量導出

前言

在自動化流水線或對話式 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 提供兩層能力:

  1. 推薦路徑:Skill 目錄下的 libreoffice_ops.py,封裝安裝檢測、路徑與格式映射,支持五種子命令:convert、batch、merge、extract-text、info。
  2. 備用路徑:直接調用 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 。

羽毛球分组比赛记分
小程序二维码

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

小夜