命令列工具
scribeocr/scribe.js avatar
scribeocr/scribe.js

Scribe.js:把图像型 PDF 变成可搜索文本层

用於圖像和 PDF 的 JavaScript OCR 和文字提取。專案 Scribe OCR:官方支援的 Scribe.js GUI 前端 網站位於 scribeocr.com,儲存庫位於 github.com/scribeocr/scribeocr 如果您有使用 Scribe.js 的專案或範例儲存庫,請隨時使用拉取請求將其新增至此清單。

320 個 Star24 個 ForkJavaScriptAGPL-3.0
GitHub

秒懂

它是什麼?
面向開發者的 JavaScript OCR 与文本提取库,处理图像、文本型 PDF 和带隐形文本层的可搜索 PDF。
適合誰用?
这篇文章适合需要评估 Scribe.js 具体边界的读者,不适合把 README 当成完整验收报告的人。先核对 Scribe.js 的 README 将输入分成图像、已有文本的 PDF 和图像型 PDF。
可以商用嗎?
可以,但條件嚴格。AGPL-3.0 是網路 copyleft 授權:如果別人透過網路使用你修改過的版本(例如作為託管服務),你必須以同一授權向他們提供原始碼。
還在維護嗎?
有在維護。儲存庫最近一次提交在 3 天前。
用什麼語言寫的?
主要是 JavaScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

从图像和 PDF 识别文本 · scribeocr-scribe-js-deep-analysis

README 将 Scribe.js 介绍为一个执行 OCR 并从图像和 PDF 中提取文本的 JavaScript 库。它列出了三个常见用例:从图像识别文本、从使用者上传的 PDF 中提取文本(文本原生 PDF 直接提取现有文本,图像原生 PDF 则通過 OCR 识别),以及写入包含高质量不可见文本层的 PDF。最后一种情况允许你向现有 PDF 插入文本,使其可搜索。该库面向開發者;需要扫描文档的最终使用者被引导至官方支持的 GUI,站点为 scribeocr.com,倉庫也已連結。

本專案核對項目1請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

本專案核對項目8請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

通過 npm 安裝并导入 · scribeocr-scribe-js-deep-analysis

使用命令 `npm i scribe.js-ocr` 从 npm 安裝 Scribe.js。该包使用 ESM 编写,因此你可以直接从浏览器或 Node.js 代码导入,无需构建步骤。README 展示了两种导入方式:一种用于 Node.js 或带打包器的浏览器,使用 `import scribe from 'scribe.js-ocr'`;另一种用于无打包器的浏览器,使用 import map 或相对路径 `node_modules/scribe.js-ocr/scribe.js`。第二种方式明确要求所有檔案与导入檔案同源;README 警告从 CDN 导入将無法工作,且不存在 UMD 版本。npm 包名为 `scribe.js-ocr`,与倉庫名不同,安裝时需注意。

本專案核對項目2請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

本專案核對項目9請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

简单提取与完整文档控制 · scribeocr-scribe-js-deep-analysis

对于新使用者,`scribe.extractText` 函数接受一个源数组并返回文本,使用合理的預設设置。README 指出该函数不适合生产環境。要获得完整控制,可使用 `openDocument` 创建文档对象,然后调用 `recognize({ langs: ['eng'] })` 等方法来執行 OCR,以及 `download('pdf', 'receipt.pdf')` 来写入可搜索的 PDF。两个示例都在识别完成后调用 `await scribe.terminate()`,以便 Node 进程退出。文档对象可以接受图像、PDF 或现有的 OCR 檔案,但 README 未详细说明支持哪些 OCR 檔案格式。示例使用了 `['receipt.png']` 作为输入,暗示图像可直接接受。

本專案核對項目3請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

本專案核對項目10請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

浏览器和模块限制 · scribeocr-scribe-js-deep-analysis

README 明确说明了浏览器行为:所有檔案必须与导入 Scribe.js 的檔案同源。这意味着从 CDN 导入無法工作,且沒有 UMD 版本。该库仅支持 ESM,因此在浏览器中需要打包器或 import map。这些限制仅列出,沒有进一步解释,開發者应在依賴之前驗證具体的服务器設定。README 未提及除同源规则之外的任何浏览器兼容性细节,因此旧版浏览器可能或不可能工作,取决于其对 ESM 的支持。

本專案核對項目4請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

本專案核對項目11請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

模板倉庫和示例 · scribeocr-scribe-js-deep-analysis

README 連結了四个模板倉庫,展示 Scribe.js 在不同環境下的用法:无构建步骤的浏览器 ESM、Next.js 浏览器、Webpack 5 浏览器和 Vue.js v2 浏览器。它还指向倉庫中的 examples 目录,并列出其中一个專案:Scribe OCR,这是官方 GUI 前端,位于 scribeocr.com,源码在 github.com/scribeocr/scribeocr。贡献者被邀请通過拉取请求添加自己的示例倉庫或專案,前提是示例文档完善、專案可執行且积极維護。README 未说明这些模板是否随每个版本保持更新。

本專案核對項目5請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

本專案核對項目12請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

文档、比较和官方 GUI · scribeocr-scribe-js-deep-analysis

倉庫包含指南、API 参考、CLI 参考和 examples 檔案夹,均从 README 連結。有一篇专门的文章将 Scribe.js 与 Tesseract.js 进行比较,但 README 沒有总结该文章的结论。官方 GUI 被描述为面向最终使用者的扫描文档应用,与開發者库分开。README 未说明 GUI 暴露了库的哪些功能,也未说明比较文章是否推荐某个库。文档目录被引用为 `./docs/`,包含 `guide.md` 和 `API.md` 等檔案,但 README 未提供目录或阅读顺序。

本專案核對項目6請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

本專案核對項目13請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

许可与贡献流程 · scribeocr-scribe-js-deep-analysis

倉庫采用 AGPL-3.0 许可,如授權檔案所示。该授權的摘录将其描述为一种为网络服务器软件设计的 copyleft 授權,要求執行在公开可访问服务器上的修改版本向使用者提供其源代码。README 的贡献部分指示贡献者使用 `--recurse-submodules` 克隆、安裝依賴,并在提交拉取请求前通過 `npm run test` 執行自动測試。授權文本未提及支持、保修或安全保证,README 也未提及。README 也未指定行为准则或除測試要求之外的贡献指南。

scribe.js 的核驗應使用 README 的瀏覽器或 Node 入口,準備清晰的文字圖片,比對 OCR 回傳的文字、信心資訊與語言設定。先執行 npm install,再以專案範例載入 scribe.js;若採用 worker 或 WASM,記錄瀏覽器主控台和網路資源是否成功載入。素材未保證特定字型、手寫內容或低解析度圖片的準確率,這些都要用自己的樣本測量。

本專案核對項目7請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

編輯結論

这篇文章适合需要评估 Scribe.js 具体边界的读者,不适合把 README 当成完整验收报告的人。先核对 Scribe.js 的 README 将输入分成图像、已有文本的 PDF 和图像型 PDF。文本型 PDF 可直接提取,图像型 PDF 走 OCR;库还能把识别出的文字写入既有 PDF,形成不可见但可检索的文本层。 再决定是否进入实际環境,專案沒有写明的行为应保留为待核事实,而不是补成承诺。 scribe.js 的核驗應使用 README 的瀏覽器或 Node 入口,準備清晰的文字圖片,比對 OCR 回傳的文字、信心資訊與語言設定。先執行 npm install,再以專案範例載入 scribe.js;若採用 worker 或 WASM,記錄瀏覽器主控台和網路資源是否成功載入。素材未保證特定字型、手寫內容或低解析度圖片的準確率,這些都要用自己的樣本測量。 這個判斷必須落在專案本身的可觀察行為。請保留 README 使用的命令、檔案名稱、設定鍵與版本標籤,建立只包含必要輸入的測試目錄,逐項記錄標準輸出、錯誤輸出、產物位置和退出狀態。再改變一個明確條件,例如輸入格式、裝置版本、主題或依賴版本,觀察結果是否符合文件描述。這能分開文件已承諾的功能與尚未說明的邊界。若測試涉及個人資料、網路服務或真實帳務,先替換成假資料,並確認暫存檔和日誌是否留下敏感內容。README 沒有明列的效能、相容性、備份或安全承諾,應以未知處理,不能用社群熱度或一次成功結果補足。升級時對照 release tag 和 lock 檔,重新執行相同測試,將差異交給維護者或 issue 追蹤。 本專案專屬核對項目1請依 README 的命令與檔案路徑保存輸出,並以版本標籤記錄差異,未說明的行為仍視為未知。

官方來源

  1. Official README
  2. Project repository
  3. Release notes
社群筆記

社群筆記