convertor/README.md
2026-01-22 12:24:23 +08:00

347 lines
9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

![ConvertX-CN](images/logo.png)
# ConvertX-CN
**開箱即用的全功能檔案轉換服務** — 一個 Docker 命令5 分鐘部署完成
[![Docker Pulls](https://img.shields.io/docker/pulls/convertx/convertx-cn?style=flat&logo=docker)](https://hub.docker.com/r/convertx/convertx-cn)
[![GitHub Release](https://img.shields.io/github/v/release/pi-docket/ConvertX-CN)](https://github.com/pi-docket/ConvertX-CN/releases)
---
## 為什麼選擇 ConvertX-CN
ConvertX-CN 不只是轉檔工具,而是 **文件轉換與翻譯的一站式平台**
- **1000+ 格式全支援**:文件、圖片、影音、電子書一次搞定
- **20+ 轉換引擎整合**LibreOffice、FFmpeg、Pandoc 全到位
- **中文友善設計**:內建中日韓字型與 OCR告別亂碼
- **65 種介面語言**:跨國團隊無障礙使用
- **MinerU**:強化文件解析與穩定度
- **PDFMathTranslate**數學、工程、AI 論文公式安全翻譯與完整保留
---
## 線上示範
想先試用再部署?歡迎使用我們的示範站:
🔗 **https://convertx-cn.bioailab.qzz.io**
| 項目 | 內容 |
| -------- | ----------------- |
| 範例帳號 | admin@example.com |
| 範例密碼 | admin |
> ⚠️ 示範站僅供測試,請勿上傳敏感檔案。資料可能定期清除。
---
## 快速啟動Docker Run
### 1. 建立資料夾
```bash
mkdir -p ~/convertx-cn/data && cd ~/convertx-cn
```
### 2. 啟動容器
JWT_SECRET=請改成你自己的隨機字串至少32字元
```bash
docker run -d \
--name convertx-cn \
--restart unless-stopped \
-p 3000:3000 \
-v ./data:/app/data \
-e TZ=Asia/Taipei \
-e JWT_SECRET=e78a2da4-135f-06a8-fa46-17ef7990f5d1 \
convertx/convertx-cn:latest
```
### 3. 開啟瀏覽器
```bash
http://localhost:3000
```
> 首次下載約 4-6 GB請耐心等待。
---
## Docker Compose推薦
### 1. 建立專案資料夾
### Linux / macOS
```bash
mkdir -p ~/convertx-cn && cd ~/convertx-cn
```
### Windows PowerShell
```bash
mkdir C:\convertx-cn; cd C:\convertx-cn
```
### Windows CMD
```bash
mkdir C:\convertx-cn
cd C:\convertx-cn
```
### 2. 建立 docker-compose.yml在專案資料夾下
- 範例內容(請修改 JWT_SECRET=請改成你自己的隨機字串至少32字元
```yaml
services:
convertx:
image: convertx/convertx-cn:latest
container_name: convertx-cn
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./data:/app/data
environment:
- TZ=Asia/Taipei
- JWT_SECRET=e78a2da4-135f-06a8-fa46-17ef7990f5d1
```
### 3. 啟動:
```bash
docker compose up -d
```
更多範例 → [docs/docker-compose/](docs/docker-compose/)
---
## 重要:資料夾說明
`./data` 是你**主機上的實體資料夾**,用於存放上傳檔案、轉換結果與使用者資料。
| 作業系統 | 建立指令 |
| ------------- | ----------------------------- |
| Linux / macOS | `mkdir -p ~/convertx-cn/data` |
| Windows (PS) | `mkdir C:\convertx-cn\data` |
| Windows (CMD) | `mkdir C:\convertx-cn\data` |
> 若不先建立Docker 會建立匿名 volume導致資料難以存取或備份。
---
## 必要參數
| 參數 | 說明 |
| ------------ | ---------------------------------- |
| `./data` | 主機資料夾,必須先建立 |
| `JWT_SECRET` | 登入驗證金鑰,不設會每次重啟被登出 |
其他環境變數 → [docs/config/environment.md](docs/config/environment.md)
---
## 常見問題
| 問題 | 解法 |
| -------------------- | ---------------------------------------------- |
| 登入後又被踢回登入頁 | 加上 `HTTP_ALLOWED=true``TRUST_PROXY=true` |
| 重啟後資料消失 | 確認 `./data:/app/data` 且資料夾存在 |
| 重啟後被登出 | 設定固定的 `JWT_SECRET` |
更多問題 → [docs/faq.md](docs/faq.md)
---
## 支援格式
| 轉換器 | 用途 | 格式數 |
| ---------------- | -------- | ------ |
| FFmpeg | 影音 | 400+ |
| ImageMagick | 圖片 | 200+ |
| LibreOffice | 文件 | 60+ |
| Pandoc | 文件 | 100+ |
| Calibre | 電子書 | 40+ |
| Inkscape | 向量圖 | 20+ |
| MinerU | 文件→MD | 2 |
| PDFMathTranslate | PDF 翻譯 | 15+ |
完整列表 → [docs/converters.md](docs/converters.md)
---
## Dark Mode
ConvertX-CN 支援亮色與暗色主題。
- 可手動切換主題(點擊導覽列的太陽/月亮圖示)
- 偏好設定自動儲存於瀏覽器
- 預設跟隨系統色彩偏好
---
## MinerU
ConvertX 內建文件轉換引擎。
- md-t表格以 Markdown 呈現)
- md-i表格以圖片呈現
輸出格式:.tar不壓縮封裝
---
## PDFMathTranslate 引擎
PDFMathTranslate 是一個內容轉換引擎,用於翻譯 PDF 文件同時保留數學公式與排版。
### 功能特點
- 📊 保留數學公式、圖表、目錄與註解
- 🌐 支援多種目標語言(中文、英文、日文、韓文等)
- 🤖 支援多種翻譯服務Google、DeepL、OpenAI 等)
### 輸出格式
所有輸出一律打包為 `.tar` 檔案,包含:
- `original.pdf` — 原始 PDF 文件
- `translated-<lang>.pdf` — 翻譯後的 PDF 文件
### 可用的目標格式
```
PDFMathTranslate
├─ pdf-en (翻譯為英文)
├─ pdf-zh (翻譯為簡體中文)
├─ pdf-zh-TW (翻譯為繁體中文)
├─ pdf-ja (翻譯為日文)
├─ pdf-ko (翻譯為韓文)
├─ pdf-de (翻譯為德文)
├─ pdf-fr (翻譯為法文)
└─ ...
```
### 環境變數
| 變數 | 說明 | 預設值 |
| ------------------------------ | -------------- | ------------------------ |
| `PDFMATHTRANSLATE_SERVICE` | 翻譯服務提供商 | google |
| `PDFMATHTRANSLATE_MODELS_PATH` | 模型路徑 | /models/pdfmathtranslate |
### 注意事項
- 所需模型已在 Docker build 階段預先下載
- 不會在 runtime 隱式下載任何模型
- 使用 Google 翻譯為預設服務(免費),可透過環境變數切換
---
## 檔案傳輸機制
Contents.CN 使用統一的檔案傳輸策略:
| 檔案大小 | 傳輸方式 | 說明 |
| -------- | -------- | ------------------------ |
| ≤ 10MB | 直接傳輸 | 單一請求完成上傳/下載 |
| > 10MB | 分段傳輸 | 使用 5MB chunks 分段傳輸 |
### 多檔輸出封裝
- ✅ 唯一允許格式:`.tar`
- ❌ 禁止使用:`.tar.gz``.tgz``.zip`
### 設計原則
- 分段傳輸僅存在於傳輸層
- 轉換引擎只接收完整檔案
- 前後端使用共用傳輸模組
---
## 語言支援
支援 **65 種語言**,包含繁體中文、簡體中文、英文、日文、韓文等。
語言會根據瀏覽器設定自動偵測,也可透過右上角選單手動切換。
詳細說明 → [docs/i18n.md](docs/i18n.md)
---
## 版本與更新
```bash
docker compose down
docker compose pull
docker compose up -d
```
- 版本說明 → [docs/versions/](docs/versions/)
- 更新指南 → [docs/deployment/update.md](docs/deployment/update.md)
- Changelog → [CHANGELOG.md](CHANGELOG.md)
---
## API Server選用
如需以程式整合方式使用 ConvertX 的轉檔功能,可啟用 **API Server**
> ⚠️ API Server 為**選用功能**,不影響現有 Web UI 的使用。若只使用網頁介面,無需任何額外設定。
### 功能特點
- 🔐 **JWT 認證** — 安全的 API 存取控制
- 🌐 **REST + GraphQL** — 雙協議支援,滿足不同整合需求
- 🔍 **智慧建議** — 轉換失敗時自動推薦替代引擎
- 🛠️ **20+ 轉換引擎** — 與 Web UI 共用完整轉換器套件
### 快速啟用
```bash
# 同時啟動 Web UI 與 API Server
docker compose --profile api up -d
```
| 服務 | 端口 | 說明 |
| ---------- | ---- | -------------- |
| Web UI | 3000 | 網頁介面 |
| API Server | 3001 | REST & GraphQL |
### API 文件
詳細的 API 規格與使用說明:
- 📘 [API Server README](api-server/README.md)
- 📗 [API 規格文件](api-server/docs/API_SPEC.md)
- 📙 [架構說明](api-server/docs/ARCHITECTURE.md)
---
## 進階文件
| 文件 | 說明 |
| -------------------------------------- | ------------------------- |
| [環境變數](docs/config/environment.md) | 所有可用參數 |
| [安全性設定](docs/config/security.md) | HTTP_ALLOWED、TRUST_PROXY |
| [反向代理](docs/deployment.md) | Nginx / Traefik / Caddy |
| [Docker 進階](docs/docker.md) | 自訂 Build |
| [FAQ](docs/faq.md) | 疑難排解 |
---
## 預覽
![ConvertX-CN Preview](images/preview.png)
---
## License
[MIT](LICENSE) | 基於 [C4illin/ConvertX](https://github.com/C4illin/ConvertX)