Spaces:
Sleeping
Sleeping
metadata
title: OCRmyPDF API 接口
emoji: 📄
colorFrom: blue
colorTo: green
sdk: docker
app_port: 8000
pinned: false
OCRmyPDF API 服务
本项目提供一个基于FastAPI的REST API,用于通过OCRmyPDF对PDF文件进行OCR处理,添加可搜索的文本层。API支持中文和英文OCR识别。
部署到Hugging Face Spaces
方法1:直接从GitHub仓库部署
- 登录Hugging Face账户
- 创建新的Space:
- 点击"Create New Space"
- 输入名称,例如"ocrmypdf-api"
- 选择"Docker"作为Space SDK
- 选择适当的硬件规格(推荐:CPU-M或更高配置,以处理大型PDF)
- 输入GitHub仓库URL
- 点击"Create Space"
方法2:手动上传文件
- 创建新的Space,选择"Docker"作为Space SDK
- 上传以下文件到Space:
Dockerfilerequirements.txtmain.pyentrypoint.shREADME.md(可选)
- Space会自动构建Docker镜像并启动服务
API使用说明
端点
GET /- API根检查GET /health- 健康检查,返回OCRmyPDF和Tesseract版本信息GET /supported-languages/- 查询支持的语言POST /ocr/- 处理PDF文件
示例请求
使用cURL:
curl -X POST "https://your-space-name.hf.space/ocr/" \
-H "accept: application/json" \
-H "Content-Type: multipart/form-data" \
-F "pdf_file=@your_file.pdf" \
-F "language=eng+chi_sim" \
-F "force_ocr=false" \
-F "deskew=true" \
-F "optimize=1" \
--output processed.pdf
使用Python:
import requests
url = "https://your-space-name.hf.space/ocr/"
payload = {
'language': 'eng+chi_sim',
'force_ocr': 'false',
'deskew': 'true',
'optimize': '1'
}
files = {
'pdf_file': open('your_file.pdf', 'rb')
}
response = requests.post(url, data=payload, files=files)
# 保存处理后的PDF
with open('processed.pdf', 'wb') as f:
f.write(response.content)
参数说明
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| language | string | "eng+chi_sim" | OCR语言,可选: "eng"(英文), "chi_sim"(简体中文), "eng+chi_sim"(中英文) |
| force_ocr | boolean | false | 是否强制对所有页面进行OCR处理,即使已包含文本 |
| deskew | boolean | false | 是否在OCR前自动校正倾斜的页面 |
| optimize | integer | 0 | PDF优化级别: 0=不优化, 1=安全优化, 2=强力优化, 3=最大优化 |
资源限制
- 最大文件大小: 200MB
- 最大页数: 1000页
- 处理超时: 1800秒(30分钟)
性能注意事项
- 大型PDF文件处理可能需要较长时间
- 高优化级别(2-3)会显著增加处理时间和资源消耗
- 如遇到超时问题,请尝试减小文件大小或降低优化级别
技术实现
本服务基于:
- OCRmyPDF官方Docker镜像
- FastAPI框架
- Tesseract OCR引擎(支持英文和简体中文)