运行时依赖
安装命令
点击复制技能文档
PDF to Word (pdf-to-word) 技能
PDF 转 Word 转换技能,基于 doc-转换器 项目实现。
项目位置 /home/vei/.OpenClaw/workspace/doc-转换器/ ├── backend/ # Node.js 后端 (Fastify + Prisma) ├── frontend/ # React 前端 (Vite + TypeScript) └── docker-compose.yml
核心转换流程
- 上传 PDF 文件
前端上传(已实现于 HomePage.tsx):
POST /API/v1/file/上传 Content-Type: multipart/form-data Body: file (PDF文件,最大50MB) 响应: { fileId, originalName, 格式化, size, pages }
直接 API 调用:
curl -X POST http://localhost:3000/API/v1/file/上传 \ -F "file=@your.pdf"
- 创建 PDF→Word 转换任务
- 轮询任务状态
状态说明:
PENDING - 排队中 PROCESSING - 转换中(有 进度 进度) COMPLETED - 完成,可下载 FAILED - 失败,查看 errorMessage
- 下载转换结果
- 转换历史
后端转换实现
核心文件:backend/src/jobs/转换器.ts
PDF → Word 使用 pdf2docx Python库:
from pdf2docx 导入 转换器 c = 转换器('输入.pdf') c.convert('输出.docx') c.close()
其他转换类型使用 LibreOffice:
Word/Excel/PPT → PDF:soffice --headless --convert-to pdf PDF → 图片:pdftoppm -jpeg -r 200 图片 → PDF:convert 或 gs 前端组件 HomePage.tsx - 主转换界面(拖拽上传、转换选项、结果展示) 历史Page.tsx - 转换历史 convertStore - Zustand 状态管理 支持的转换类型 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 快速使用流程 上传 PDF:拖拽或点击选择 PDF 文件 选择转换格式:自动显示 PDF→Word 选项 开始转换:点击转换按钮 等待完成:轮询任务状态(每1.5秒) 下载结果:点击下载按钮获取 .docx 文件 关键代码参考 转换路由:backend/src/路由s/convert.ts 转换Worker:backend/src/jobs/转换器.ts 前端API:frontend/src/API/命令行工具ent.ts 状态管理:frontend/src/stores/convertStore.ts
详细 API 和架构说明见 references/