介绍 Scribe.js 是什么
Scribe.js 是一款专为 JavaScript 环境设计的 OCR 文字识别库,它既可以运行于浏览器端,也支持 Node.js 服务端使用。它可识别图像或 PDF 文件中的文字内容,并将其提取为可编辑、可搜索的文本层。
Scribe.js 的核心功能
图像与 PDF 的文字提取:支持识别图像上的文字,对扫描 PDF 文件提供 OCR 识别,也能处理已有文本层的 PDF extract。
插入可被搜索的文本层:可以将识别后的文字作为隐藏层插入到 PDF,实现可搜索与复制文本功能。
高精度识别流程:内部使用 Tesseract.js WebAssembly 版本,并对识别模型、字体分类、文本布局分析等环节进行了优化,兼具准确性与实用性。
与 Tesseract.js 的比较
识别引擎基础相同:Scribe.js 使用的是基于 Tesseract.js 的 OCR 模型,但在前端预处理、自动旋转校正、Legacy 与 LSTM 模型融合方面做出改进,识别效果优于纯 Tesseract.js。
功能覆盖更广:虽然 Tesseract.js 主要专注于图像文字识别并小体积、纯 JavaScript,但不支持 PDF 文本层插入与识别流程优化;Scribe.js 则集成图像与 PDF OCR 及可搜索 PDF 输出功能。
安装与使用方法
1. 安装方式
npm install scribe.js-ocr
库使用 AGPL‑3.0 许可协议,适合在开源或双 GPL 兼容项目中使用。
2. 引入方式
浏览器端(ESM 模式)
import scribe from 'node_modules/scribe.js-ocr/scribe.js';
Node.js 环境
import scribe from 'scribe.js-ocr';
官方不提供 UMD 或 CDN 地址,因此前端需自托管该模块。
3. 基础示例
scribe.extractText(['https://example.com/sample.png'])
.then(res => console.log(res))
.catch(err => console.error(err));
你也可传入 PDF 的 URL,库会自动判断并执行 OCR 或文本提取流程。
4. 进阶功能
获取识别后的 PDF 含隐藏文字层,用于构建可搜索 PDF。
字体分类识别:自动检测字体族与样式(如 italic/normal)。
自动旋转矫正:对旋转图像自动调整方向,从而提高 OCR 识别准确度。
实战使用场景
用户上传发票或收据图片/扫描件,前端调用 Scribe.js 提取文本信息,后端存储结构数据。
批量处理扫描 PDF,生成可检索的整理文档,支持全文检索与复制。
对 OCR 结果进行校对与纠错,将 .hocr 格式输出与原始图像对应,实现人工校对流程。
使用建议与注意事项
- 当前版本为 v0.8.0,于 2025年3月 发布,持续更新中。
- 引入时需确保模块同源加载,避免浏览器跨源限制;
- 若希望识别与本地 Tesseract CLI 输出一致,可关闭部分内置优化,但仍不保证百分百一致。
- 在生产环境中使用时,注意 AGPL 许可对商业闭源使用的限制。
Scribe.js 是一个在 JavaScript 环境中兼顾方便性与识别准确度的 OCR 库。与 Tesseract.js 相比,它更适合处理 PDF 文档和生成可搜索文本层的场景,并且通过更完善的前端处理流程提升识别正确率。无论是前端图像识别,还是后端批量文本提取,Scribe.js 都是一个值得尝试的方案。