# document-to-html
**Repository Path**: zhengxingne/soffice
## Basic Information
- **Project Name**: document-to-html
- **Description**: 'pdf' | 'html' | 'doc' | 'docx' | 'odt' | 'odp' | 'pptx' | 'ppt' | 'ods' | 'xlsx'| 'xls' 多文件转html
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-09-23
- **Last Updated**: 2025-12-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Office文档转HTML服务 (Go版本)
这是一个使用Go和Gin框架构建的Web服务,可以将Office文档(如Word、Excel、PowerPoint等)转换为HTML格式。
## 功能特点
- 支持多种文档格式:PDF、DOC、DOCX、ODT、ODP、PPTX、PPT、ODS、XLSX、XLS
- 文档转换为HTML格式
- 自动处理HTML中的图片,将其移动到静态目录并更新引用
- 强缓存支持,图片缓存1年
- Swagger API文档
- 文件大小限制(200MB)
- 自动清理临时文件
## 依赖要求
- Go 1.21+
- LibreOffice(用于文档转换)
### 安装LibreOffice
**macOS:**
```bash
brew install --cask libreoffice
```
**Ubuntu/Debian:**
```bash
sudo apt-get update
sudo apt-get install libreoffice
```
**CentOS/RHEL:**
```bash
sudo yum install libreoffice
```
## 安装和运行
1. 克隆项目:
```bash
git clone
cd soffice
```
2. 安装Go依赖:
```bash
go mod tidy
```
3. 生成Swagger文档:
```bash
swag init
```
4. 构建项目:
```bash
go build -o main .
```
5. 运行服务:
```bash
./soffice
```
或者直接运行:
```bash
go run main.go
```
## API文档
服务启动后,访问以下地址查看API文档:
- Swagger UI: http://localhost:18420/swagger/index.html
- 根路径会自动重定向到API文档
## 环境变量
- `BASE_URL`: 服务的基础URL,默认为 `http://localhost:18420`
## Docker部署
构建Docker镜像:
```bash
docker build -t document-to-html .
docker buildx build --platform linux/amd64 -t document-to-html:20251009 .
```
运行容器:
```bash
docker run -p 18420:18420 -e BASE_URL=http://your-domain.com soffice
```
## 注意事项
1. 确保系统已安装LibreOffice
2. 上传文件大小限制为50MB
3. 服务会自动清理上传的源文件和临时文件
4. 图片文件会被移动到static目录并设置长期缓存
## 开发
如果需要修改API文档,编辑main.go中的注释后运行:
```bash
swag init
```