Современные системы обработки документов всё чаще интегрируются с периферийными устройствами для получения цифровых копий бумажных носителей. Ключевым вопросом при разработке таких решений становится выбор протокола взаимодействия с сканером изображений/документов. В этой статье мы разберём основные стандарты, оценим их преимущества и ограничения, а также рассмотрим, как реализовать их поддержку с помощью
VintaSoft TWAIN .NET SDK.
1. Сканирование документов с помощью сканеров TWAIN
TWAIN – это стандарт, который определяет программный протокол и API (интерфейс прикладного программирования) для связи между программными приложениями и устройствами получения изображений, такими как сканеры и цифровые камеры.
TWAIN является стандартом и поэтому обеспечивает единообразие взаимодействия между различными устройствами и приложениями, упрощая разработку и использование программного обеспечения для работы с изображениями.
1.1. Поддерживаемые операционные системы
Стандарт TWAIN заявляет поддержку операционных систем Windows, Linux, macOS.
1.2. Наличие драйвера устройства
Для работы TWAIN устройства необходимо установить TWAIN драйвер в операционную систему.
TWAIN драйвер для сканера изображений в большинстве случаев разрабатывается производителем сканера изображений – благодаря этому TWAIN драйвер обеспечивает доступ ко всем возможностям сканера изображений, также благодаря этому обеспечивается максимальная скорость работы с сканером изображений.
Стандарт TWAIN является самым популярным и основным стандартом для работы с сканерами изображений в операционной системе Windows. Практически все сканеры изображений имеют TWAIN драйвер для Windows.
На данный момент сотрудники компании ВинтаСофт видели реально работающие TWAIN драйвера для Linux только от компании Kodak.
Сотрудникам компании ВинтаСофт ничего не известно о существовании TWAIN драйверов для macOS для современных сканеров изображений. На форумах компании Apple можно найти информацию о том что компания Apple официально прекратила поддержку стандарта TWAIN в своей операционной системе macOS примерно в 2019 году.
1.3. Передача изображения от сканера изображений к приложению-клиенту
Стандарт TWAIN определяет 3 режима передачи отсканированного изображения от сканера изображений к приложению-клиенту. Режим "Native" позволяет передать изображение в виде Windows Bitmap-объекта. Режим "Memory" позволяет передать изображение через память, то есть данные передаются в виде массива байт, который содержит "сырые" данные изображения или закодированные (например, CCITT4 или JPEG) данные изображения. Режим "File" позволяет сохранить отсканированное изображение сразу в файл. Наличие трех режимов позволяет выбрать режим, который максимально оптимально соответствует логике приложения-клиента и позволяет добиться максимальной производительности и гибкости.
1.4. Работа с возможностями сканера изображений
Стандарт TWAIN содержит более 700 страниц текста и очень подробно описывает процесс взаимодействия TWAIN драйвера и приложения. Стандарт TWAIN обеспечивает возможность работу практически со всеми возможностями сканера изображений.
1.5. Скорость работы
Использование стандарта TWAIN обеспечивает отличную скорость работы с сканером изображений/документов.
1.6. Поддержка технологии
Стандарт TWAIN разрабатывается "рабочей группой TWAIN" (веб сайт
https://twain.org) - некоммерческой организацией, которая занимается поддержкой и развитием стандарта TWAIN. В эту группу входят различные производители сканеров изображений и компании разработчики программного обеспечения.
2. Сканирование документов с помощью сканеров SANE
SANE (Scanner Access Now Easy) - это программный интерфейс приложения (Application Programming Interface) с открытым исходным кодом, предоставляющий стандартизированный интерфейс для доступа к сканерам растровых изображений. SANE позволяет получать изображения с различных устройств, таких как планшетные сканеры и камеры. В SANE реализовано четкое разделение драйвера устройства от пользовательского интерфейса устройства.
2.1. Поддерживаемые операционные системы
SANE API является самым популярным и основным стандартом для работы с сканерами изображений в операционной системе Linux.
2.2. Наличие драйвера устройства
Практически все сканеры изображений имеют SANE драйвер для Linux.
Есть SANE драйвера от производителя сканера изображений или от сообщества SANE. SANE является API и определяет только архитектуру SANE драйвера. Конкретная реализация SANE драйвера зависит от разработчика драйвера. Большинство SANE драйверов разработаны разработчиками из SANE сообщества.
Для работы SANE устройства необходимо установить SANE драйвер в операционную систему Linux. Список устройств, которые поддерживают SANE API, можно посмотреть здесь:
http://www.sane-project.org/sane-supported-devices.html
2.3. Передача изображения от сканера изображений к приложению-клиенту
SANE устройство передает данные изображения через память, то есть данные отсканированного изображения передаются в виде массива байт, который содержит «сырые» данные изображения.
2.4. Работа с возможностями сканера изображений
Документ, который определяет SANE API, является не большим и определяет функционал для базовой работы со сканером изображений, то есть SANE API определяет API для простого получения изображений без использования расширенных функций сканера изображений. В тоже время ничто не мешает разработчику SANE драйвера реализовать поддержку расширенных возможностей, но это будут возможности вне SANE API.
2.5. Скорость работы
Использование SANE API обеспечивает хорошую скорость работы с сканером изображений/документов.
2.6. Поддержка технологии
Проект SANE (веб сайт
http://www.sane-project.org) – это проект с открытым исходным кодом, который позволяет свободно изменять и распространять его исходный код для совместной работы сообщества, а также способствующий постоянным улучшениям и обновлениям.
3. Сканирование документов с помощью сканеров eSCL
eSCL (eXtensible Scanner Control Library) - это стандарт, который разработал альянс Mopria и который определяет протокол сканирования изображений для обеспечения беспроводного сканирования на различных устройствах без необходимости установки драйверов. Протокол eSCL использует HTTP(S) и XML для связи между сканером изображений и приложением, которое использует сканер изображений.
3.1. Поддерживаемые операционные системы
Протокол eSCL может быть использован в Windows, Linux, macOS, Android. Протокол eSCL может использовать проводную или беспроводную сеть.
3.2. Наличие драйвера устройства
Для работы eSCL устройства не нужно устанавливать драйвер в операционную систему. Обычно eSCL устройство является Linux устройством на котором запущен веб сервер, который обслуживает запросы к устройству по протоколу eSCL. Также веб сервер обеспечивает веб-интерфейс, который позволяет пользователю настраивать параметры сканирования и удобно управлять задачами сканирования изображений через веб браузер.
Список устройств, которые поддерживают протокол eSCL, можно посмотреть здесь:
https://mopria.org/it/certified-products
3.3. Передача изображения от сканера изображений к приложению-клиенту
Стандарт eSCL определяет, что любое eSCL устройство должно поддерживать передачу отсканированного изображения в виде JPEG или PDF потока, то есть для того чтобы приложение-клиент получило отсканированное изображение от сканера изображений выполняются следующие шаги:
- eSCL устройство сканирует документ и получает сырые данные изображения.
- eSCL устройство кодирует отсканированное изображение в JPEG или PDF файл.
- eSCL устройство отправляет JPEG или PDF поток приложению-клиенту по HTTP соединению.
- Приложение-клиент получает JPEG или PDF поток и использует для своих целей.
Если отсканированное изображение нужно сразу же сохранить в файл или базу данных, то процесс передачи изображения от сканера изображений к приложению-клиенту является оптимальным. Если же после сканирования нужно посмотреть отсканированное изображение, то придется декодировать JPEG изображение или отрендерить PDF страницу – это является недостатком, потому что происходит в принципе не нужное промежуточное «кодирование-декодирование» отсканированного изображения.
Также стандарт eSCL определяет возможность получения «сырых» данных изображения от сканера изображений, но данная возможность является не обязательной и поддерживается не всеми eSCL сканерами.
3.4. Работа с возможностями сканера изображений
Спецификация протокола eSCL содержит 70+ страниц и определяет функционал для базовой работы со сканером изображений, то есть протокол eSCL подходит для простого получения изображений без использования расширенных функций сканера изображений.
3.5. Скорость работы
Скорость работы сканирования изображений зависит от скорости сети через которую соединены eSCL сканер изображений и приложение-клиент. В большинстве случаев использование протокола eSCL обеспечивает хорошую скорость работы с сканером изображений/документов.
3.6. Поддержка технологии
Альянс Mopria (веб сайт
https://mopria.org) — это организация производителей принтеров и разработчиков программного обеспечения, которая создает и продвигает универсальные стандарты беспроводной печати и сканирования с мобильных устройств. Стандарты Mopria позволяют устройствам, сертифицированным в соответствии с ними, находить друг друга в сети и обмениваться данными, обеспечивая простую и удобную печать и сканирование с различных мобильных устройств, таких как смартфоны и планшеты.
4. Сканирование документов с помощью сканеров WIA
WIA расшифровывается как Windows Image Acquisition. Это компонент операционной системы Windows, который позволяет программному обеспечению взаимодействовать с устройствами обработки изображений, такими как сканеры и цифровые камеры. WIA предоставляет API (интерфейс программирования приложений) для разработчиков, чтобы они могли создавать приложения, которые могут получать доступ к изображениям с этих устройств.
4.1. Поддерживаемые операционные системы
WIA является компонентом операционной системы Windows и соответственно WIA совместимые устройства могут быть использованы только в Windows.
4.2. Наличие драйвера устройства
Для работы WIA устройства не нужно устанавливать WIA драйвер, потому что стандартный WIA драйвер уже установлен в операционной системе Windows. Сканер, который поддерживает WIA, готов к работе сразу после установки в Windows.
4.3. Передача изображения от сканера изображений к приложению-клиенту
WIA API определяет 2 режима передачи отсканированного изображения от сканера изображений к приложению-клиенту. Режим "Memory" позволяет передать изображение через память, то есть данные передаются в виде массива байт. Режим "File" позволяет сохранить отсканированное изображение сразу в файл.
4.4. Работа с возможностями сканера изображений
Информация о WIA API доступна на сайте Microsoft:
https://learn.microsoft.com/en-us/previous-versions/windows/desktop/wia/-wia-wia-application-programming-interface
WIA API определяет API для простого получения изображений без использования расширенных функций сканера изображений.
4.5. Скорость работы
Использование WIA API обеспечивает хорошую скорость работы с сканером изображений/документов.
4.6. Поддержка технологии
WIA API поддерживается компанией Microsoft.
5. Сканирование документов с помощью сканеров ICA
ICA расшифровывается как Image Capture. ICA это фреймворк Apple, который предназначен для "поиска медиаустройств и программного управления ими из вашего приложения".
Фреймворк ICA является частью операционной системы macOS и соответственно является самым популярным и основным стандартом для работы с сканерами изображений в операционной системе macOS.
Для работы ICA устройства необходимо установить ICA драйвер в операционную систему macOS.
6. Сканирование документов с помощью сканеров ISIS
Стандарт сканирования ISIS — это спецификация интерфейса "Image and Scanner Interface", разработанная компанией Pixel Translations (теперь часть OpenText) для управления устройствами получения изображений, такими как сканеры. Он известен высокой производительностью, модульностью и полной спецификацией для интеграции высокоскоростных сканеров в приложения, позволяя им работать на номинальной скорости или выше. В отличие от более распространённого стандарта TWAIN, ISIS изначально был ориентирован на производственные среды и требовал от поставщиков выплаты роялти за использование драйвера, что сделало его менее популярным в корпоративном секторе.
Для работы ISIS устройства необходимо установить ISIS драйвер в операционную систему.
Драйверы ISIS изначально разрабатывались компанией Pixel Translations, которая впоследствии стала частью EMC (теперь OpenText). Производители сканеров платят EMC за использование драйвера ISIS и включение его в комплектацию своего оборудования, либо приобретают наборы инструментов разработки и примеры кода у таких компаний, как DELL EMC Captiva, для создания собственных драйверов ISIS.
Использование драйвера ISIS обеспечивает наилучшую/максимальную скорость работы с сканером документов.
7. Какой вариант выбрать?
Выбор протокола сканирования должен основываться не только на технических характеристиках устройств, но и на реальных условиях эксплуатации, требованиях бизнеса и ограничениях инфраструктуры.
Тип и модель сканера:
- Профессиональные дорогие сканеры документов всегда поддерживают стандарт TWAIN и в большинстве случаев поддерживают стандарт ISIS.
- Профессиональные дорогие многофункциональные устройства (МФУ) почти всегда поддерживают TWAIN.
- Недорогие сканеры изображений обычно поддерживают стандарт TWAIN и иногда поддерживают WIA API.
- Недорогие МФУ иногда поддерживают только WIA API.
- Сетевые сканеры изображений и МФУ часто поддерживают протокол eSCL.
Совет: перед началом разработки соберите список моделей сканеров, с которыми будет работать ваше ПО, и проверьте их спецификации на сайте производителя.
Требования к качеству и скорости:
- Если важна максимальная детализация (например, при оцифровке архивных документов), выбирайте TWAIN или ISIS с поддержкой высоких DPI и цветокоррекции.
- Для массового потокового сканирования больших объёмов бумажных документов лучше подходят устройства c поддержкой TWAIN или ISIS.
- Для базового офисного сканирования (акты, счета, служебные записки) можно выбрать TWAIN, WIA или eSCL в Windows, SANE или eSCL в Linux, ICA или eSCL в macOS.
Особенности рабочего процесса:
- Двустороннее сканирование (дуплекс) – лучше поддерживается в TWAIN и ISIS.
- Автоматическая подача документов (ADF) – поддерживается в TWAIN и ISIS, частично в WIA.
- Автоматическая обрезка и выравнивание – зависит от драйвера устройства и выбранного протокола.
Пример: если у вас архив с тысячами двусторонних листов, отсутствие поддержки дуплекса может вдвое увеличить время работы.
Затраты на внедрение и поддержку:
- TWAIN, WIA, SANE, ICA, eSCL не требуют платного лицензирования драйверов.
- ISIS часто предполагает платные лицензии и дополнительные расходы на драйверы.
Для старта проекта с ограниченным бюджетом TWAIN – наиболее рациональный выбор.
8. Реализация в VintaSoft TWAIN .NET SDK
VintaSoft TWAIN .NET SDK это профессиональная .NET библиотека для сканирования изображений, которая позволяет создать .NET-приложение для управления TWAIN сканером изображений в Windows и Linux, SANE сканером изображений в Linux, eSCL сканером изображений в Windows и Linux.
Также
VintaSoft TWAIN .NET SDK предоставляет JavaScript API и VintaSoft Web TWAIN сервис, которые позволяют веб-разработчику быстро и легко создать кросс-браузерное веб-приложение для получения изображений от TWAIN сканеров изображений в Windows и Linux, SANE сканеров изображений в Linux, eSCL сканеров изображений в Windows и Linux. Разработанное веб-приложение можно использовать во всех основных веб-браузерах.
Выбор протокола сканирования – стратегическое решение для разработчиков систем документооборота. TWAIN остаётся универсальным стандартом, а
VintaSoft TWAIN .NET SDK обеспечивает удобную и гибкую реализацию, поддерживая TWAIN, WIA (через TWAIN), SANE, eSCL. При грамотной интеграции можно добиться стабильной работы со сканерами разных производителей и в разных средах – от настольных приложений до облачных сервисов.