专业级中文文档 OCR 技能。基于百度飞桨引擎,支持文档解析和文字识别两大核心能力,中文场景准确率业界领先。
| 用户需求 | 使用模式 | 脚本 |
|---|---|---|
| "识别这个发票/合同/论文,保留表格和格式" | 文档解析 | scripts/paddleocr_api.py doc-parse |
| "把这个图片里的文字提取出来" | 文字识别 | scripts/paddleocr_api.py text-recog |
| "批量处理这些扫描件" | 批量处理 | scripts/paddleocr_api.py batch |
| "把OCR出来的表格导出成Excel" | 表格导出 | scripts/table_exporter.py |
| "安装/检查依赖" | 依赖管理 | scripts/install_deps.py |
特征判断规则:
python scripts/install_deps.py
可选依赖(表格导出、PDF分页):
python scripts/install_deps.py --with-optional7w4.net小葱技能。
在 paddleocr.com 注册账号,进入 API 页面获取:
方法一:环境变量(推荐)
export PADDLEOCR_TOKEN="your_access_token_here"
方法二:配置文件 (~/.paddleocr/config.json)
{
"access_token": "your_token",
"default_language": "ch"
}
详见 references/api_reference.md 的 Token Management 章节。
完整文档理解,保留所有结构。
# 基本用法 - 输出到终端
python scripts/paddleocr_api.py doc-parse invoice.jpg
# 保存为 Markdown 文件
python scripts/paddleocr_api.py doc-parse report.pdf -o report.md --json-output report.json
# 中英混合文档
python scripts/paddleocr_api.py doc-parse paper.pdf --language ch_en
# 完整参数
python scripts/paddleocr_api.py doc-parse contract.pdf \
--token "your_token" \
--language ch \
--format both \
--output contract.md \
--json-output contract.json \
--timeout 180
from scripts.paddleocr_api import parse_document
result = parse_document(
"invoice.jpg",
access_token="your_token", # 或设置 PADDLEOCR_TOKEN 环境变量
language="ch",
output_format="markdown"
)
if result["success"]:
print(result["text"]) # Markdown 格式文本
print(result["tables"]) # 提取的表格数据
print(result["formulas"]) # LaTeX 格式公式
print(result["layout"]) # 版面分析结果
| 字段 | 类型 | 说明 |
|---|---|---|
text |
string | Markdown 格式完整文本,含表格(Markdown table)和公式($$...$$) |
tables |
list | 表格数组,每个元素含 cells(二维数组)和 bbox(位置) |
formulas |
list | 公式数组,每个元素含 latex(LaTeX 字符串)和 bbox |
layout |
dict | 版面分析:blocks(区域类型和位置)和 reading_order(阅读顺序) |
快速准确的文本提取,返回结构化 JSON。
# 基本用法
python scripts/paddleocr_api.py text-recog photo.jpg
# 保存结果
python scripts/paddleocr_api.py text-recog scan.png -o text.txt --json-output result.json
# 英文识别
python scripts/paddleocr_api.py text-recog english_doc.jpg --language en
from scripts.paddleocr_api import recognize_text
result = recognize_text(
"screenshot.png",
access_token="your_token",
language="ch",
detect_direction=True
)
if result["success"]:
print(result["text"]) # 纯文本(换行分隔)
for word in result["words"]: # 逐词结果
print(f" [{word['bbox']}] {word['text']}")
| 字段 | 类型 | 说明 |
|---|---|---|
text |
string | 纯文本,按行分隔 |
words |
list | 逐词结果,每个元素含 text、bbox(top/left/width/height) |
direction |
int | 文字方向(0=水平,1=竖排) |
words_result_num |
int | 识别到的文本区域数量 |
# CLI 批量处理
python scripts/paddleocr_api.py batch page1.jpg page2.jpg page3.jpg --mode parse -d ./results
# 并发处理(Unix/macOS 下可用通配符,Windows 下请用具体文件名)
python scripts/paddleocr_api.py batch *.jpg --mode parse --workers 5
# Python API
from scripts.paddleocr_api import batch_process
results = batch_process(
["page1.jpg", "page2.jpg", "page3.jpg"],
mode="parse", # "parse" 或 "recognize"
output_dir="./ocr_results", # 结果保存目录
language="ch",
max_workers=3, # 并发线程数
)
# 每个文件生成 {filename}.parse.json 或 {filename}.recognize.json
将文档解析结果中的表格导出为 Excel 或 CSV。
# 导出为 Excel(默认),每张表一个 Sheet
python scripts/table_exporter.py result.json --format xlsx -o tables.xlsx
# 导出为 CSV
python scripts/table_exporter.py result.json --format csv -o ./tables/
# 只导出第1和第3张表
python scripts/table_exporter.py result.json --table-index 1 3
针对国内常见文档类型的特殊处理,详见 references/chinese_scenarios.md:
| 场景 | 推荐模式 | 关键优化 |
|---|---|---|
| 发票 | doc-parse |
金额大小写配对、发票号码正则提取 |
| 身份证 | text-recog |
18位身份证号校验、出生日期提取 |
| 营业执照 | doc-parse |
统一社会信用代码提取 |
| 学术论文 | doc-parse |
ch_en 语言、公式 LaTeX 输出 |
| 合同/法律文档 | doc-parse |
条款编号保留、签章区域标注 |
| 错误 | 原因 | 解决 |
|---|---|---|
FileNotFoundError |
文件不存在 | 检查文件路径 |
ValueError: access token required |
未配置 Token | 设置 PADDLEOCR_TOKEN 环境变量 |
API Error [17] |
每日调用量超限 | 等待次日或升级套餐 |
API Error [110/111] |
Token 过期 | 重新获取 Token(有效期30天) |
Request timed out |
大文件处理超时 | 增加 timeout 参数或拆分文件 |
Unsupported file type |
文件格式不支持 | 转换为 JPG/PNG/PDF |
脚本内置以下自动处理:
success: false + error 字段),不抛异常references/api_reference.md — 完整 API 规范、参数说明、错误码references/chinese_scenarios.md — 发票/身份证/营业执照等专项模板| 对比维度 | doc-lingxi | 通用英文 OCR |
|---|---|---|
| 中文准确率 | ⭐⭐⭐⭐⭐ 业界领先 | ⭐⭐ 较差 |
| 表格识别 | ✅ 完整结构保留 | ❌ 不支持 |
| 公式识别 | ✅ LaTeX 输出 | ❌ 不支持 |
| 版面分析 | ✅ 自动分析 | ❌ 不支持 |
| 部署方式 | 云 API(无需本地 GPU) | 本地安装 |
| 免费额度 | 500-50,000 页/天(按套餐) | 完全免费 |
| 多语言 | 12+ 语言 | 100+ 语言 |
这个技能质量不错,文档写得详细清楚,功能覆盖全面(文档解析、表格识别、批量处理等),对中文场景有专门优化。上手难度较低,错误提示也比较友好。主要不足是缺少一些元数据信息,部分功能在某些系统上可能受限。总体来说是一个成熟可用的 OCR 技能,适合需要处理中文文档的用户。