feat: 新增 OCRmyPDF 轉換引擎 (v0.1.14)

## 新功能
- OCRmyPDF 轉換引擎:將掃描版 PDF 轉換為可搜尋 PDF
  - 支援 7 種語言:en, zh-TW, zh, ja, ko, de, fr
  - 與 PDFMathTranslate 風格一致的 UI 格式 (pdf-<lang>)
  - 自動偵測頁面方向並旋轉
  - 自動校正傾斜
  - 跳過已有文字層的頁面
  - 詳細的 5 階段處理進度輸出

## 建置
- Dockerfile:安裝 ocrmypdf 與 Tesseract OCR 語言包

## 文件
- 更新 OCR 功能文件
- 文件目錄結構改為中文名稱

## 測試
- 修復 BabelDOC 和 PDFMathTranslate 測試的 OCR mock
- 所有 345 個測試通過
This commit is contained in:
Your Name 2026-01-23 16:28:33 +08:00
parent f24eec070c
commit a06df23b1d
53 changed files with 1427 additions and 675 deletions

View file

@ -1,130 +0,0 @@
# 快速部署指南
本文件提供 ConvertX-CN 的完整部署步驟,適合第一次使用 Docker 的使用者。
---
## 前置需求
- [Docker](https://www.docker.com/products/docker-desktop/) 或 [Docker Engine](https://docs.docker.com/engine/install/)
- 約 6 GB 硬碟空間
- 網路連線(首次下載映像檔)
---
## 步驟 1安裝 Docker
### Windows / macOS
下載並安裝 [Docker Desktop](https://www.docker.com/products/docker-desktop/)。
### Linux
```bash
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# 登出再登入,讓群組生效
```
驗證安裝:
```bash
docker --version
docker compose version
```
---
## 步驟 2建立專案資料夾
### Linux / macOS
```bash
mkdir -p ~/convertx-cn/data
cd ~/convertx-cn
```
### Windows (PowerShell)
```powershell
mkdir C:\convertx-cn\data
cd C:\convertx-cn
```
> ⚠️ `data` 資料夾必須先建立,否則 Docker 會建立匿名 volume導致資料難以存取。
---
## 步驟 3建立 docker-compose.yml
在專案資料夾建立 `docker-compose.yml`
```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=請改成你自己的隨機字串至少32字元
```
### 必要參數說明
| 參數 | 說明 |
| ------------ | ---------------------------------- |
| `./data` | 存放上傳檔案與轉換結果,必須先建立 |
| `JWT_SECRET` | 登入驗證金鑰,不設會每次重啟被登出 |
---
## 步驟 4啟動服務
```bash
docker compose up -d
```
首次執行會下載映像檔(約 4-6 GB需等待幾分鐘。
查看狀態:
```bash
docker compose ps
docker compose logs -f # Ctrl+C 退出
```
---
## 步驟 5使用
1. 開啟瀏覽器,訪問 `http://localhost:3000`
2. 點擊 **Register** 註冊帳號
3. 開始轉換檔案
首次註冊的帳號會自動成為管理員。
---
## 常見問題
| 問題 | 解法 |
| -------------------- | ------------------------------------ |
| 登入後又被踢回登入頁 | 加上 `HTTP_ALLOWED=true` |
| 重啟後資料消失 | 確認 `./data:/app/data` 且資料夾存在 |
| 重啟後被登出 | 設定固定的 `JWT_SECRET` |
| 3000 埠被佔用 | 改用 `"8080:3000"` |
更多問題請參考 [FAQ](../faq.md)。
---
## 下一步
- [環境變數完整說明](../config/environment.md)
- [反向代理與 HTTPS](../deployment.md)
- [版本更新方法](update.md)