Dynamsoft Document Capture — онлайн-сервис для оцифровки и оптического распознавания текста — запущен не так давно. Соответствующий сервис RESTful также доступен сейчас. В этой статье я расскажу, как использовать REST API для работы с файлами изображений и выполнения оптического распознавания символов.

Регистрация в облачной службе Dynamsoft

Посетите страницу регистрации, чтобы создать новую учетную запись.

API-ключ распознавания текста

После авторизации перейдите на страницу OCR API Key, чтобы сгенерировать ключ, который будет использоваться для авторизации ваших запросов.

Ограничения для бесплатной учетной записи

  • Ваш входной исходный файл будет автоматически удален после успешного распознавания.
  • Выходной файл может храниться на сервере 30 дней.
  • Максимальный размер одного файла, поддерживаемый сервисом, составляет 100 МБ.
  • Максимальный размер всех файлов под одной учетной записью — 500 МБ.
  • Пробные аккаунты получают 25 бесплатных кредитов при регистрации.

Справочник по API

На Справочной странице API вы можете получить информацию об API, коде ошибки и поддержке языка OCR.

Быстрый старт

Установите модуль DDC Node.js:

npm install rest-ocr

Создайте test.js:

var DDC = require('rest-ocr');
var key = ‘Your OCR API key';
var ddc = new DDC(key);
ddc.queryQuota(function (error, response, body) {
if (ddc.isJSON(body)) {
console.log(body);
}
});

Запустите приложение, чтобы запросить квоту вашей учетной записи:

node test.js

Вот мои возвращенные данные JSON:

{"quota":29,"used":23,"error_code":0,"error_msg":"Success.","request_id":"8b9ac1f2b4ba4f7f9a1c42bf3e8d65df"}

Как использовать RESTful API

Основные этапы распознавания OCR:

  1. Загрузите или сделайте снимок файла изображения.
  2. Выберите выходной формат: Microsoft Word, Microsoft Excel, Microsoft PowerPoint, ePub, HTML, CSV, текст, форматированный текст, PDF и XML. Формат файла по умолчанию — Docx.
  3. Распознавайте текст и сохраняйте содержимое в целевой файл.

Чтобы быстро отправить HTTP-запрос в Node.js, мы можем использовать request:

var request = require('request');

Проверить кредиты страницы

Квота означает, сколько изображений вы можете использовать для службы OCR. Например, если значение равно 25, вы можете загрузить или захватить только 25 изображений:

var options = {
url: 'https://cloud.dynamsoft.com/rest/ocr/v1/quota?method=page',
method: 'GET',
headers: {
'x-api-key': this.key
}
};
request(options, callback);

Проверьте место на диске

Место для хранения ограничено. Перед загрузкой изображений лучше проверить доступное место на диске:

let options = {
url: 'https://cloud.dynamsoft.com/rest/ocr/v1/quota?method=disk',
method: 'GET',
headers: {
'x-api-key': this.key
}
};
request(options, callback);

Загрузить файл изображения

let formData = {
file_name: fileName,
file: fs.createReadStream(filePath),
};
let options = {
url: 'https://cloud.dynamsoft.com/rest/ocr/v1/file?method=upload',
method: 'POST',
headers: {
'x-api-key': this.key,
'content-type': 'multipart/form-data'
},
formData: formData
};
request(options, callback);

OCR

Формат данных должен быть следующим: {"список":[{"имя_файла":"1.jpg"},{"имя_файла":"2.jpg"}]}

let formData = {
language: 'eng',
output_format: 'DOCX',
param: JSON.stringify(data)
};
let options = {
url: 'https://cloud.dynamsoft.com/rest/ocr/v1/file?method=recognize',
method: 'POST',
headers: {
'x-api-key': this.key,
'content-type': 'multipart/form-data'
},
formData: formData
};
request(options, callback);

Скачать и удалить файлы

Примечание: в настоящее время можно работать только с сохраненными файлами (Файлы репозитория документов), а не с исходными загруженными файлами.

Скачать файл:

let url =
'https://cloud.dynamsoft.com/rest/ocr/v1/file?method=download&file_name=' +
urlencode(fileName);
let options = {
url: url,
method: 'GET',
headers: {
'x-api-key': this.key,
}
};
request(options, callback).pipe(fs.createWriteStream(fileName));

Удалить файл:

let url =
'https://cloud.dynamsoft.com/rest/ocr/v1/file?method=delete&file_name=' +
urlencode(fileName);
let options = {
url: url,
method: 'POST',
headers: {
'x-api-key': this.key,
}
};
request(options, callback);

Удалить несколько файлов:

let formData = {param: JSON.stringify(data)};
let options = {
url: 'https://cloud.dynamsoft.com/rest/ocr/v1/file?method=delete',
method: 'POST',
headers: {
'x-api-key': this.key,
'content-type': 'multipart/form-data'
},
formData: formData
};
request(options, callback);

Формат данных должен быть следующим: {"список":[{"имя_файла":"1.jpg"},{"имя_файла":"2.jpg"}]}.

Исходный код

https://github.com/dynamsoft-document-capture/REST-API

Первоначально опубликовано на www.codepool.biz 7 августа 2017 г.