node-ocr обертка для ABBYY Cloud API ( http://ocrsdk.com/ ).
Работает с nodejs 0.6.x.
npm install node-ocr
ocr=require("node-ocr").createWrapper(appId, appPwd)appId и appPwd - опциональные параметы, если не заданы, идентификатор и пароль
беруться из переменных окружения ABBYY_APPID и ABBYY_PWD соответственно.
Обработчик получает состояние err и список заданий taskList - объект, содержащий
ключ task, значением которого является массив заданий.
ocr.listTasks (err, tasksList) ->unless err
console.dir(tasksList)Передаваемые параметры: путь к файлу, опции, обработчик.
Обработчик получает состояние err и идентификатор задания id.
ocr.applyToFile"/tmp/filename.jpeg", {outputFormat:"rtf"}, (err, id) ->unless err
console.log"task id = #{id}"Передаваемые параметры: буфер, опции, обработчик.
Обработчик получает состояние err и идентификатор задания id.
ocr.applyToBuffer buffer, {outputFormat:"xml"}, (err, id) ->unless err
console.log"task id = #{id}"Передаваемые параметры: идентификатор задачи и обработчик.
Обработчик получает состояние err и объект статуса (stat), содержащий ключ task.
ocr.getTaskStatus taskId, (err, stat) ->unless err
console.dir(stat.task)
Передаваемые параметры: идентификатор задачи, опции, обработчик.
Обработчик получает состояние err и объект с ключом resultUrl, содержащим путь к обработанному файлу.
ocr.waitTaskEnd id, opts, (err, data) ->unless err
console.dir(data.resultUrl)Сейчас эта функция не работает, потому что текст возвращается в cp1251.
sys=require"util"ocr=require("node-ocr").createWrapper()
opts=outputFormat:"xml"filename="/tmp/filewithtext.png"ocr.applyToFile filename, opts, (err, id) ->unless err
ocr.waitTaskEnd id, opts, (err, data) ->console.log"what we got: #{sys.inspect data, null, null}"elseconsole.log"Error found: #{sys.inspect err}"# ... проверить заданияocr.listTasks (err, data) ->unless err
console.log"fetch data:\n#{sys.inspect data, null, null}"elseconsole.log"error :\n#{sys.inspect err}"sys=require("util")ocr=require("node-ocr").createWrapper()opts={outputFormat: "txt"} # срусскимтекстомпокапроблемыfilename="/tmp/filewithtext.png"ocr.applyToFile(filename,opts,function(err,id){if(null===err){ocr.waitTaskEnd(id,opts,function(err,data){console.log("what we got: "+sys.inspect(data,null,null));});}else{console.log("Error found: "+sys.inspect(err));}});
# ... проверитьзаданияocr.listTasks(function(err,data){if(null===err){console.log("fetch data:\n"+sys.inspect(data,null,null));}else{console.log("error :\n#"+sys.inspect(err));}})- Ключи API можно изменить при вызове
createWrapper
- Загрузка изображений
- Состояние задачи обработки
- Ожидание конца обработки