name: pdf-to-word description: | PDF 轉 Word(docx)文件轉換工具。當用戶需要將 PDF 檔案轉換為 Word 文件(.docx)時使用此技能。
觸發詞:PDF轉Word、PDF to Word、pdf轉docx、把PDF轉成Word、文件轉換
支援的功能: (1) PDF → Word (.docx) 轉換 (2) 查詢轉換任務狀態 (3) 下載轉換結果 (4) 批次轉換 (5) 轉換歷史記錄
PDF 轉 Word 轉換技能,基於 doc-converter 專案實現。
/home/vei/.openclaw/workspace/doc-converter/
├── backend/ # Node.js 後端 (Fastify + Prisma)
├── frontend/ # React 前端 (Vite + TypeScript)
└── docker-compose.yml
前端上傳(已實現於 HomePage.tsx):
POST /api/v1/file/upload
Content-Type: multipart/form-data
Body: file (PDF檔案,最大50MB)
Response: { fileId, originalName, format, size, pages }
直接 API 呼叫:
curl -X POST http://localhost:3000/api/v1/file/upload \
-F "file=@your.pdf"
POST /api/v1/convert/
Content-Type: application/json
Body: { fileId: "<fileId>", conversionType: "pdf_to_word" }
Response: { taskId, status, conversionType, createdAt, expiresAt }
GET /api/v1/convert/:taskId
Response: {
taskId, status: "PENDING" | "PROCESSING" | "COMPLETED" | "FAILED",
progress: 0-100,
output: { fileId, originalName, format, size, downloadUrl } | null,
errorMessage: string | null
}
狀態說明:
- PENDING - 排隊中
- PROCESSING - 轉換中(有 progress 進度)
- COMPLETED - 完成,可下載
- FAILED - 失敗,檢視 errorMessage
GET /api/v1/convert/:taskId/download
Response: 檔案流 (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
GET /api/v1/convert/history
Response: { total, tasks: [{ taskId, conversionType, status, createdAt, input, output }] }
核心檔案:backend/src/jobs/converter.ts
PDF → Word 使用 pdf2docx Python庫:
from pdf2docx import Converter
c = Converter('input.pdf')
c.convert('output.docx')
c.close()
其他轉換型別使用 LibreOffice:
- Word/Excel/PPT → PDF:soffice --headless --convert-to pdf
- PDF → 圖片:pdftoppm -jpeg -r 200
- 圖片 → PDF:convert 或 gs
7w4.net提供免費和付費技能下載。
| conversionType | 說明 | 引擎 |
|---|---|---|
pdf_to_word |
PDF → Word | pdf2docx |
word_to_pdf |
Word → PDF | LibreOffice |
pdf_to_images |
PDF → 圖片 | pdftoppm |
images_to_pdf |
圖片 → PDF | ImageMagick/gs |
word_to_image |
Word → 圖片 | LibreOffice + pdftoppm |
excel_to_pdf |
Excel → PDF | LibreOffice |
ppt_to_pdf |
PPT → PDF | LibreOffice |
backend/src/routes/convert.tsbackend/src/jobs/converter.tsfrontend/src/api/client.tsfrontend/src/stores/convertStore.ts詳細 API 和架構說明見 references/