# file-converter
**Repository Path**: work25/file-converter
## Basic Information
- **Project Name**: file-converter
- **Description**: 支持 Office 文件转 PDF 和音视频格式互转的 Web 应用
- **Primary Language**: JavaScript
- **License**: MIT-0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-06-16
- **Last Updated**: 2026-07-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
一站式文件格式转换解决方案,支持文档、图片、音视频等多种格式的互转。
## 核心特性
### 文档转换
- **PDF → Word/Excel**:提取 PDF 内容转换为可编辑的 Word 文档或 Excel 表格
- **PDF → 图片**:将 PDF 页面导出为高清 PNG/JPG 图片
- **PDF → Markdown**:将 PDF 转换为结构化的 Markdown 文档
- **Office → PDF**:Word、Excel、PPT 转 PDF,保留原始排版
- **Word/Excel 互转**:支持 Office 格式之间的转换及导出 TXT/CSV
### 图片转换
- **图片格式互转**:PNG、JPG、BMP、WebP 格式之间自由转换
- **图片 → PDF**:将图片转换为 PDF 文档
### 音视频转换
- **视频格式互转**:MP4、AVI、MKV、MOV、FLV、WebM、GIF 等格式互转
- **音频格式互转**:MP3、WAV、AAC、FLAC、OGG 格式互转
- **音频提取**:从视频中提取音频轨道
### 技术栈
| 层级 | 技术 | 说明 |
|------|------|------|
| 前端 | Vue 3 + TypeScript | 类型安全的响应式 UI |
| UI 框架 | Element Plus | 企业级组件库 |
| 构建工具 | Vite | 极速开发体验 |
| 后端 | Python + FastAPI | 高性能异步 API |
| 文档转换 | LibreOffice | 开源办公套件,支持格式最全 |
| PDF 处理 | PyMuPDF | 高性能 PDF 渲染与解析 |
| 音视频 | FFmpeg | 业界标准多媒体处理 |
| 存储 | MinIO | S3 兼容的对象存储 |
| 数据库 | SQLite | 轻量级,可切换 PostgreSQL |
## 快速开始
### Docker Compose(推荐)
```bash
docker-compose up -d --build frontend
```
| 服务 | 地址 | 说明 |
|------|------|------|
| 前端 | http://localhost:3000 | Web 界面 |
| 后端 API | http://localhost:8000/docs | Swagger 文档 |
| MinIO 控制台 | http://localhost:9001 | 文件管理 (minioadmin/minioadmin) |
### 本地开发
```bash
# 后端
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000
# 前端
cd frontend
npm install
npm run dev
```
## 项目结构
```
file-converter/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI 入口
│ │ ├── config.py # 配置管理
│ │ ├── database.py # 数据库连接
│ │ ├── routers/ # API 路由
│ │ ├── models/ # 数据模型
│ │ ├── schemas/ # Pydantic 模式
│ │ └── services/
│ │ ├── converter.py # 格式转换核心
│ │ ├── minio_service.py # MinIO 存储
│ │ └── task_manager.py # 任务调度
│ ├── Dockerfile
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── api/ # API 封装
│ │ ├── views/ # 页面组件
│ │ ├── stores/ # Pinia 状态
│ │ ├── router/ # 路由配置
│ │ └── App.vue
│ ├── Dockerfile
│ └── nginx.conf
└── docker-compose.yml
```
## API 接口
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | `/api/conversions/upload` | 上传文件并转换 |
| GET | `/api/conversions/` | 查询历史记录 |
| GET | `/api/conversions/active` | 查询进行中的任务 |
| GET | `/api/conversions/{id}` | 查询任务详情 |
| GET | `/api/conversions/{id}/download` | 下载转换结果 |
| DELETE | `/api/conversions/{id}` | 删除任务记录 |
## 支持的格式
| 类型 | 支持格式 |
|------|----------|
| 文档 | doc, docx, xls, xlsx, ppt, pptx, odt, ods, odp, pdf, txt, csv, md |
| 图片 | png, jpg, jpeg, bmp, gif, tiff, webp |
| 视频 | mp4, avi, mkv, mov, flv, webm, gif |
| 音频 | mp3, wav, aac, flac, ogg |
## License
MIT