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:
- Загрузите или сделайте снимок файла изображения.
- Выберите выходной формат: Microsoft Word, Microsoft Excel, Microsoft PowerPoint, ePub, HTML, CSV, текст, форматированный текст, PDF и XML. Формат файла по умолчанию — Docx.
- Распознавайте текст и сохраняйте содержимое в целевой файл.
Чтобы быстро отправить 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 г.