PDF OCR 文字识别

把扫描件 / 图片型 PDF 变成可选中、可搜索的文字 PDF,浏览器本地处理不上传

PDF OCR 文字识别:把扫描件变成可搜索的文档

很多 PDF 其实是「图片型」的——由扫描仪、手机拍照或印刷件转来,肉眼能读,但里面的文字只是像素, 无法选中、复制或搜索。PDF OCR 文字识别工具基于浏览器内的 Tesseract.js 引擎,逐页把页面渲染成图片、 识别其中的文字,再为你生成一份可选中、可搜索的 PDF,同时提供纯文本导出。整个过程在你的浏览器本地完成,文件不会上传到任何服务器。

它能做什么

  • 识别扫描件 / 图片型 PDF 中的文字,支持中文、英文、日文、韩文等多语言。
  • 输出可选中 PDF:在原始页面图像之上叠加一层透明的文字,既保留原版面,又能选中、复制、Ctrl+F 搜索。
  • 同时提供纯文本导出(.txt),方便二次编辑或入库。
  • 对本身就是文本型的 PDF 同样有效(可重新抽取一遍文字)。

技术原理

工具在浏览器内完成三步处理,不依赖后端接口:

  1. 渲染:用 pdf.js 把每一页栅格化成高分辨率画布(默认 2.5 倍缩放,提升识别率)。
  2. 识别:把画布交给 Tesseract.js(WASM 版 OCR 引擎)做文字检测与识别,拿到每个词的内容与坐标框。
  3. 合成:用 pdf-lib 新建 PDF,先铺回原页面图像,再按识别坐标在对应位置叠加文字层,得到可选中的结果。

首次识别某种语言时,浏览器会从公共 CDN 拉取对应的训练数据(traineddata,约数 MB),属模型数据而非你的文件; 之后会缓存,重复识别更快。

使用建议

  • 扫描件尽量端正、对比清晰,识别率更高。
  • 中文文档建议选择「仅中文」或「中英文」语言项。
  • 页数很多时识别需要一些时间,请耐心等待进度提示。

常见问题

识别出的文字准确吗?

对清晰、端正的扫描件识别率很高;模糊、倾斜或复杂排版的页面可能有误差,建议识别后核对关键内容。

我的 PDF 会上传到服务器吗?

不会。所有渲染、识别、合成都在你的浏览器本地完成,文档内容不会离开本机(仅 OCR 引擎的训练数据会从公共 CDN 下载,那不是你的文件)。

中文为什么有时搜索不到?

可选中 PDF 的文字层使用 PDF 标准字体,标准 14 字体无法编码中文等非 ASCII 字符,因此中文词不会写入 PDF 文字层,但仍能通过「下载文本(.txt)」拿到全部中文识别结果。要让中文也进入可选中层,需要嵌入中文字体(约 10MB),属后续增强项。