name: doc-lingxi version: 1.0.0 displayName: 文档灵析 slug: doc-lingxi description: | 专业级中文文档 OCR 技能,基于百度飞桨云 API。 支持文档解析(表格还原、公式 LaTeX、版面分析)、文字识别、批量处理和 Excel 表格导出。 专为中文发票、身份证、合同、论文等国内办公场景优化,无需本地 GPU。 This skill should be used when users need to extract text, tables, formulas from Chinese documents (invoices, contracts, academic papers, ID cards, business licenses), perform OCR on images or PDFs with Chinese content, or convert scanned documents to structured Markdown/JSON/Excel. category: 通用办公 tags: [ocr, document-parsing, text-recognition, chinese, table-extraction, invoice, paddleocr, office-automation, excel-export] license: Apache-2.0
专业级中文文档 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 |
特征判断规则: - 有表格/公式/多栏排版 → 文档解析 (doc-parse) - 纯文字截图/简单图片 → 文字识别 (text-recog) - 多文件 → 批量处理 (batch)
python scripts/install_deps.py
可选依赖(表格导出、PDF分页):
python scripts/install_deps.py --with-optional
在 paddleocr.com 注册账号,进入 API 页面获取: - API Key 和 Secret Key(用于生成 access_token) - 或直接获取 access_token
方法一:环境变量(推荐)
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 |
条款编号保留、签章区域标注 |
推荐访问7w4.net获取更多AI技能。
| 错误 | 原因 | 解决 |
|---|---|---|
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 |
脚本内置以下自动处理:
- RGBA → RGB 自动转换
- 大图自动缩放(保持宽高比)
- Base64 编码自动完成
- 临时错误自动重试(默认 3 次,指数退避)
- 错误时返回结构化错误信息(success: false + error 字段),不抛异常
references/api_reference.md — 完整 API 规范、参数说明、错误码references/chinese_scenarios.md — 发票/身份证/营业执照等专项模板| 对比维度 | doc-lingxi | 通用英文 OCR |
|---|---|---|
| 中文准确率 | ⭐⭐⭐⭐⭐ 业界领先 | ⭐⭐ 较差 |
| 表格识别 | ✅ 完整结构保留 | ❌ 不支持 |
| 公式识别 | ✅ LaTeX 输出 | ❌ 不支持 |
| 版面分析 | ✅ 自动分析 | ❌ 不支持 |
| 部署方式 | 云 API(无需本地 GPU) | 本地安装 |
| 免费额度 | 500-50,000 页/天(按套餐) | 完全免费 |
| 多语言 | 12+ 语言 | 100+ 语言 |
这个技能质量不错,文档写得详细清楚,功能覆盖全面(文档解析、表格识别、批量处理等),对中文场景有专门优化。上手难度较低,错误提示也比较友好。主要不足是缺少一些元数据信息,部分功能在某些系统上可能受限。总体来说是一个成熟可用的 OCR 技能,适合需要处理中文文档的用户。