← 返回
未分类 Key

pdf-ocr-tencent

PDF OCR 增强工具 - 使用腾讯云 OCR 将图片型 PDF 转换为可搜索的 OCR 版 PDF。适合处理扫描件、证件、合同等需要高识别精度的场景。
PDF OCR 增强工具 - 使用腾讯云 OCR 将图片型 PDF 转换为可搜索的 OCR 版 PDF。适合处理扫描件、证件、合同等需要高识别精度的场景。
gaohuage
未分类 community v1.0.1 2 版本 100000 Key: 需要
★ 0
Stars
📥 74
下载
💾 0
安装
2
版本
#latest

概述

PDF OCR 增强工具(腾讯云 OCR + 手写签名)

本 skill 将图片型 PDF 转换为可搜索的 OCR 版 PDF,使用腾讯云 OCR 提供高精度中文识别。

特点:无需安装腾讯云 SDK,手写 TC3-HMAC-SHA256 签名直调 API。

前置依赖

Python 依赖

pip install pymupdf

> 仅需 PyMuPDF(fitz),用于 PDF 渲染和文字叠加

腾讯云配置

需要设置环境变量或直接修改脚本中的凭证:

  • TENCENTCLOUD_SECRET_ID - 密钥 ID
  • TENCENTCLOUD_SECRET_KEY - 密钥 Key
  • TENCENTCLOUD_REGION - 区域(默认:ap-guangzhou)

快速使用

# 基本用法(输出到同目录,文件名加"_可搜索"后缀)
python3 pdf-ocr-tencent.py "扫描件.pdf"

# 指定输出路径
python3 pdf-ocr-tencent.py "输入.pdf" "输出.pdf"

工作流程

1. PDF 每页 → 144 DPI 渲染为 JPEG 图片
2. 图片 base64 → 腾讯云 GeneralAccurateOCR API
3. OCR 结果(文字+坐标)→ 叠加到图片底图上
4. 输出可搜索 PDF(Ctrl+F 可搜索)

参数说明

参数必填说明
------------------
输入 PDF要处理的 PDF 文件路径
输出路径不填则自动加 "_可搜索.pdf" 后缀

核心实现

TC3-HMAC-SHA256 签名(手写,无需 SDK)

def sign(key, msg):
    return hmac.new(key, msg.encode("utf-8"), hashlib.sha256).digest()

def get_signature(secret_id, secret_key, service, region, timestamp, payload):
    date = datetime.datetime.utcfromtimestamp(timestamp).strftime("%Y-%m-%d")
    # ... 完整签名流程见脚本

关键点

  • 必须用 utcfromtimestamp(不能用 fromtimestamp(tz=UTC),会导致日期差 8 小时)
  • 使用 ItemPolygon 获取文本块坐标(大写 X/Y/Width/Height)
  • 文字层必须用 fontname="china-s"(宋体),否则中文不可见

可搜索 PDF 生成

# 文字坐标需 Y 轴翻转(PDF 坐标原点在左下)
x0 = blk['x'] * sx
y0 = (img_h - blk['y'] - blk['h']) * sy
x1 = (blk['x'] + blk['w']) * sx
y1 = (img_h - blk['y']) * sy

page_out.insert_textbox(
    fitz.Rect(x0, y0, x1, y1),
    text,
    fontsize=max(rect.height * 0.65, 5),
    fontname="china-s",  # 关键!中文字体
    color=(0, 0, 0),
)

输出

  • 可搜索 PDF:图片底图 + 不可见文字层
  • 支持 Ctrl+F 搜索、复制文字
  • 文件保存到指定路径或原目录

适用场景

场景推荐度
--------------
中文扫描件转可搜索 PDF⭐⭐⭐⭐⭐
合同/文档 OCR 识别⭐⭐⭐⭐⭐
证件/票据识别⭐⭐⭐⭐
英文文档 OCR⭐⭐⭐
手写体识别⭐⭐(建议专业 OCR 服务)

注意事项

  1. 腾讯云 OCR 免费额度:每月 1000 次通用印刷体识别(GeneralAccurateOCR)
  2. 大文件处理:225 页 PDF 约需 15-30 分钟(每页调一次 API)
  3. API 凭证:脚本内硬编码了密钥,长期使用建议改用环境变量
  4. 隐私:图片会上传至腾讯云处理

常见问题

Q: 文字层看不见/搜索不到?

A: 检查是否使用了 fontname="china-s",默认 Helvetica 不支持中文。

Q: 文字位置偏了?

A: 检查 Y 轴翻转逻辑:y0 = (img_h - blk['y'] - blk['h']) * sy

Q: 签名失败(AuthFailure)?

A: 确认用的是 utcfromtimestamp 而不是 fromtimestamp(tz=UTC),后者会差 8 小时。

版本历史

共 2 个版本

  • v1.0.1 把腾讯云 sdk 修改为手写签名,更轻量化 当前
    2026-05-16 12:58 安全 安全
  • v1.0.0 Initial release
    2026-05-16 12:45 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

security-compliance

Skill Vetter

spclaudehome
AI智能体技能安全预审工具。安装ClawdHub、GitHub等来源技能前,检查风险信号、权限范围及可疑模式。
★ 1,211 📥 266,245
ai-intelligence

self-improving agent

pskoett
捕获经验教训、错误和纠正,以实现持续改进。使用时机:(1)命令或操作意外失败;(2)用户纠正……
★ 4,057 📥 796,716
ai-intelligence

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,351 📥 317,796