第56期头图:集装箱码头 · 凭号即取
一天一个新Skill · 第 56 期

OCRmyPDF:给扫描版 PDF 加一层看不见的文字层

纸还是那张纸,但从"一张图"变成"可以搜索、可以复制的文档"。全程本地跑,零 Key。

34,994GitHub Stars MIT许可证 pip一条命令安装 0API Key

01一句话

OCRmyPDF 是一个命令行工具:给扫描版 PDF 加一层看不见的文字层。纸还是那张纸,但从"一张图"变成"可以搜索、可以复制的文档"。GitHub 34,994★,MIT 许可证,pip 一条命令安装,全程本地跑,零 Key。

02亲测过程和实测读数

环境与安装(可逐字复现)

# macOS;python3 3.14.3
pip install ocrmypdf        # → 17.13.0
brew install tesseract tesseract-lang
                            # → tesseract 5.5.3 / tesseract-lang 4.1.0

跑法一条

ocrmypdf -l eng+chi_sim sample-ep56-scanned.pdf out.pdf
# 计时:/usr/bin/time -p

测试样张:1 页 / 119,555B / 图片版扫描 PDF / OCR 前可提取文字 0 字符。

2.05s
总耗时(/usr/bin/time -p)
103,018B
输出大小,比原件小 13.8%(顺带图片优化)
266
识别字符数,中英混排可命中

编号 20261012-56-34994 去空格归一化后逐字可搜,标题/版本/许可证字段全部读出。(OCR 对中文插入空格是已知行为,全文搜索命中按去空格归一化判定。)

03两个如实交代

1

中文个别字读错("v17.13.0"读成"v17 BO")——OCR 不是打印,编号类内容建议 OCR 后抽查;本次英文部分零错。小字号段落比大标题识别损失更明显(如「验收口径」节)——这正是 OCR 的真实能力边界,不美化。

2

中文文字层默认"可搜索可复制",想在阅读器里高亮显示需装 NotoSansSC 字体——工具跑完会自己提示。

04适合谁

  • 扫描合同 / 发票 / 盖章文件的批量归档检索;
  • 论文库"拍照版"PDF 的全文检索;
  • 命令行批量处理(--jobs 并行)。

05与上期 anydoc 的分工

anydoc 把文档转 Markdown 给 AI 读;OCRmyPDF 只加文字层、不动原貌,让扫描件本身可搜索。不重叠。

内容配图:单箱提单特写,码头吊装挂签

06本期讲解视频

中文配音(zh-CN-YunjianNeural)+ 硬字幕,按冻结文案逐字讲解本期全部内容。

07本期制作组