Skip to content

KirillTemnov/node-ocr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

node-ocr обертка для ABBYY Cloud API ( http://ocrsdk.com/ ).

Установка

Работает с nodejs 0.6.x.

        npm install node-ocr

Использование

Создать объект для доступа к api

        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.

Примеры использования

Coffee-script

        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}"
            else
              console.log "Error found: #{sys.inspect err}"

        # ... проверить задания
        ocr.listTasks (err, data) ->
            unless err
                   console.log "fetch data:\n#{sys.inspect data, null, null}"
            else
                   console.log "error :\n#{sys.inspect err}"

Javascript

        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));
            }
         })

Changelog

v 0.1.1

  • Ключи API можно изменить при вызове createWrapper

v 0.1.0

  • Загрузка изображений
  • Состояние задачи обработки
  • Ожидание конца обработки

About

ocr wrapper for abbyy finereader cloud api

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published