You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11下使用node-tesseract-ocr报write EOF错误求解决

问题描述

在Windows 11系统中运行Node.js脚本,使用node-tesseract-ocr读取PNG文件文本内容,执行代码如下:

const tesseract = require("node-tesseract-ocr");
const fs = require("fs/promises");

async function main() {
  const img = await fs.readFile("buddy-screenshot.png");
  const text = await tesseract.recognize(img);

  console.log("Result:", text);
}

main();

运行后出现以下错误:

node:events:371
  throw er; // Unhandled 'error' event
  ^

Error: write EOF
    at WriteWrap.onWriteComplete [as oncomplete] (node:internal/stream_base_commons:98:16)
Emitted 'error' event on Socket instance at:
    at emitErrorNT (node:internal/streams/destroy:157:8)
    at emitErrorCloseNT (node:internal/streams/destroy:122:3)
    at processTicksAndRejections (node:internal/process/task_queues:83:21) {
  errno: -4095,
  code: 'EOF',
  syscall: 'write'
}
错误原因

这个write EOF错误主要由以下情况导致:

  • Tesseract OCR引擎未正确安装或配置:node-tesseract-ocr是Tesseract引擎的Node.js封装,若系统未安装Tesseract或未将其加入环境变量,Node.js进程无法与引擎建立正常通信,写入数据时连接提前断开。
  • Buffer传入方式不兼容:部分版本的node-tesseract-ocr对直接传入文件Buffer的支持存在问题,导致数据传输异常。
  • 依赖版本兼容性问题:老旧版本的node-tesseract-ocr可能存在与Windows环境下Node.js的兼容性BUG。
解决方法
  • 安装并配置Tesseract OCR引擎
    1. 下载Windows版Tesseract安装包(推荐UB Mannheim编译的稳定版本),安装时勾选Add to PATH选项。
    2. 重启命令行窗口,执行tesseract --version验证引擎是否能正常调用。
  • 修改代码,传入文件路径而非Buffer
    改为直接传入文件路径,避免Buffer处理的兼容性问题:
    const tesseract = require("node-tesseract-ocr");
    
    async function main() {
      const text = await tesseract.recognize("buddy-screenshot.png");
      console.log("Result:", text);
    }
    
    main();
    
  • 更新node-tesseract-ocr到最新稳定版
    执行以下命令重新安装依赖:
    npm uninstall node-tesseract-ocr
    npm install node-tesseract-ocr
    
  • 验证图片路径正确性
    确保buddy-screenshot.png位于脚本执行的当前工作目录,或使用绝对路径指定文件位置。

内容的提问来源于stack exchange,提问作者Lemec Cinq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:23:18