Les systèmes modernes de traitement de documents s'intègrent de plus en plus à des périphériques pour obtenir des copies numériques de documents papier. Le choix du protocole d'interaction avec un scanner d'images/documents est crucial dans le développement de telles solutions. Cet article analyse les principales normes, évalue leurs avantages et leurs limites, et examine comment les prendre en charge à l'aide du
VintaSoft TWAIN .NET SDK.
1. Numérisation de documents avec des scanners TWAIN
TWAIN est une norme qui définit un protocole logiciel et une API (interface de programmation d'application) pour la communication entre les applications logicielles et les périphériques d'imagerie tels que les scanners et les appareils photo numériques.
TWAIN est une norme et garantit donc l'uniformité de l'interaction entre différents périphériques et applications, simplifiant ainsi le développement et l'utilisation de logiciels de traitement d'images.
1.1. Systèmes d'exploitation pris en charge
La norme TWAIN prend en charge les systèmes d'exploitation Windows, Linux et macOS.
1.2. Disponibilité d'un pilote de périphérique
Pour utiliser un périphérique TWAIN, vous devez installer un pilote TWAIN sur votre système d'exploitation.
Le pilote TWAIN d'un scanner d'images est généralement développé par le fabricant du scanner. Ainsi, il permet d'accéder à toutes les fonctionnalités du scanner et garantit une vitesse d'utilisation optimale.
La norme TWAIN est la norme la plus répandue et la plus courante pour l'utilisation des scanners d'images sous Windows. Presque tous les scanners d'images disposent d'un pilote TWAIN pour Windows.
Actuellement, les employés de VintaSoft n'ont trouvé de pilotes TWAIN fonctionnels pour Linux que chez Kodak.
Les employés de VintaSoft ignorent l'existence de pilotes TWAIN pour macOS destinés aux scanners d'images modernes. Sur les forums Apple, on trouve des informations selon lesquelles Apple a officiellement cessé de prendre en charge la norme TWAIN dans son système d'exploitation macOS vers 2019.
1.3. Transfert d'une image d'un scanner d'images vers une application cliente
La norme TWAIN définit trois modes de transfert d'une image numérisée d'un scanner d'images vers une application cliente. Le mode "Native" permet de transférer une image sous forme d'objet Bitmap Windows. Le mode "Memory" permet de transférer une image via la mémoire, c'est-à-dire que les données sont transférées sous forme de tableau d'octets contenant des données d'image brutes ou encodées (par exemple, CCIT4 ou JPEG). Le mode "File" permet d’enregistrer directement l’image numérisée dans un fichier. La présence de trois modes permet de sélectionner celui qui correspond le mieux à la logique de l’application cliente et d’obtenir des performances et une flexibilité maximales.
1.4.Utilisation des fonctionnalités du scanner d'images
La norme TWAIN contient plus de 700 pages de texte et décrit en détail le processus d'interaction entre le pilote TWAIN et l'application. La norme TWAIN permet d'utiliser la quasi-totalité des fonctionnalités d'un scanner d'images.
1.5. Vitesse du scanner d'images
L'utilisation de la norme TWAIN offre une excellente vitesse de numérisation d'images et de documents.
1.6. Assistance technique
La norme TWAIN est développée par le " TWAIN Working Group " (site web:
https://twain.org) – une organisation à but non lucratif qui soutient et développe la norme TWAIN. Ce groupe comprend divers fabricants de scanners d'images et des sociétés de développement de logiciels.
2. Numérisation de documents avec les scanners SANE
SANE (Scanner Access Now Easy) est une interface de programmation d'application (API) open source qui fournit une interface standardisée pour accéder aux scanners d'images raster. SANE permet d'acquérir des images à partir de divers périphériques, tels que les scanners à plat et les appareils photo. SANE met en œuvre une séparation claire entre le pilote du périphérique et l'interface utilisateur du périphérique.
2.1. Systèmes d'exploitation pris en charge
L'API SANE est la norme la plus répandue et la plus fondamentale pour l'utilisation des scanners d'images sous Linux.
2.2. Disponibilité d'un pilote de périphérique
Presque tous les scanners d'images disposent d'un pilote SANE pour Linux.
Il existe des pilotes SANE fournis par le fabricant du scanner ou par la communauté SANE. SANE est une API qui définit uniquement l'architecture du pilote. L'implémentation spécifique du pilote dépend de son développeur. La plupart des pilotes SANE sont développés par des membres de la communauté SANE.
Pour utiliser un périphérique SANE, vous devez installer le pilote SANE sur votre système d'exploitation Linux. La liste des appareils compatibles avec l'API SANE est disponible ici:
http://www.sane-project.org/sane-supported-devices.html
2.3. Transfert d'une image d'un scanner vers une application cliente
Le périphérique SANE transfère les données d'image via la mémoire; autrement dit, les données de l'image numérisée sont transférées sous forme de tableau d'octets contenant les données brutes de l'image.
2.4. Utilisation des capacités du scanner d'images
Le document définissant l'API SANE est concis et décrit les fonctionnalités de base pour l'utilisation du scanner d'images. Autrement dit, l'API SANE définit une API pour l'acquisition d'images simples, sans utiliser les fonctionnalités avancées du scanner. Toutefois, rien n'empêche le développeur du pilote SANE d'implémenter la prise en charge de fonctionnalités avancées, mais celles-ci seront externes à l'API SANE.
2.5. Vitesse du scanner d'images
L'utilisation de l'API SANE garantit de bonnes performances avec le scanner d'images/documents.
2.6. Support technique
Le projet SANE (site web
http://www.sane-project.org) est un projet open source, ce qui permet de modifier et de distribuer librement son code source pour la collaboration communautaire et pour faciliter les améliorations et les mises à jour continues.
3. Numérisation de documents avec des scanners eSCL
eSCL (eXtensible Scanner Control Library) est une norme développée par la Mopria Alliance qui définit un protocole de numérisation d'images permettant la numérisation sans fil sur divers appareils sans installation de pilotes. Le protocole eSCL utilise HTTP(S) et XML pour la communication entre le scanner et l'application qui l'utilise.
3.1. Systèmes d'exploitation compatibles
Le protocole eSCL est compatible avec Windows, Linux, macOS et Android. Il peut utiliser un réseau filaire ou sans fil.
3.2.Disponibilité d'un pilote de périphérique
Pour utiliser un périphérique eSCL, il n'est pas nécessaire d'installer de pilote dans le système d'exploitation. Un périphérique eSCL est généralement un appareil Linux exécutant un serveur web qui traite les requêtes adressées au périphérique via le protocole eSCL. Le serveur web fournit également une interface web permettant à l'utilisateur de configurer les paramètres de numérisation et de gérer facilement les tâches de numérisation d'images via un navigateur web.
Vous trouverez ici une liste des appareils compatibles avec le protocole eSCL:
https://mopria.org/it/certified-products
3.3. Transfert d'une image d'un scanner vers une application cliente
La norme eSCL spécifie que tout périphérique eSCL doit prendre en charge le transfert d'une image numérisée sous forme de flux JPEG ou PDF. Autrement dit, pour qu'une application cliente reçoive une image numérisée d'un scanner, les étapes suivantes sont effectuées:
- Le périphérique eSCL numérise un document et reçoit les données brutes de l'image.
- Le périphérique eSCL encode l'image numérisée dans un fichier JPEG ou PDF.
- Le périphérique eSCL envoie le flux JPEG ou PDF à l'application cliente via une connexion HTTP.
- L'application cliente reçoit le flux JPEG ou PDF et l'utilise.
Si l'image numérisée doit être enregistrée immédiatement dans un fichier ou une base de données, le transfert direct de l'image du scanner vers l'application cliente est optimal. Si vous souhaitez visualiser l'image numérisée après la numérisation, vous devrez décoder l'image JPEG ou générer la page PDF; ceci est un inconvénient, car il y a en principe un "encoding-decoding" intermédiaire inutile.
La norme eSCL définit également la possibilité de recevoir des données d'image "raw" à partir d'un scanner d'images, mais cette option n'est pas obligatoire et n'est pas prise en charge par tous les scanners eSCL.
3.4. Utilisation des capacités du scanner d'images
La spécification du protocole eSCL contient plus de 70 pages et définit les fonctionnalités de base pour une utilisation avec un scanner d'images. Autrement dit, le protocole eSCL convient à la numérisation d'images simples sans utiliser les fonctionnalités avancées du scanner.
3.5. Vitesse du scanner d'images
La vitesse de numérisation dépend de la vitesse du réseau auquel le scanner eSCL et l'application cliente sont connectés. Dans la plupart des cas, l'utilisation du protocole eSCL offre une bonne vitesse de numérisation d'images/documents.
3.6. Assistance technique
La Mopria Alliance (site web
https://mopria.org) est une organisation regroupant des fabricants d'imprimantes et des développeurs de logiciels. Elle crée et promeut des normes universelles pour l'impression et la numérisation sans fil depuis des appareils mobiles. Les normes Mopria permettent aux appareils certifiés de se détecter mutuellement sur le réseau et d'échanger des données, offrant ainsi une impression et une numérisation simples et pratiques depuis divers appareils mobiles tels que les smartphones et les tablettes.
4. Numérisation de documents avec des scanners WIA
WIA signifie Windows Image Acquisition. Il s'agit d'un composant du système d'exploitation Windows qui permet aux logiciels de communiquer avec des périphériques d'imagerie tels que les scanners et les appareils photo numériques. WIA fournit une API (interface de programmation d'applications) permettant aux développeurs de créer des applications capables d'accéder aux images de ces périphériques.
4.1. Systèmes d'exploitation pris en charge
WIA est un composant du système d'exploitation Windows; par conséquent, les périphériques compatibles WIA ne peuvent être utilisés que sous Windows.
4.2.Disponibilité d'un pilote de périphérique
Vous n'avez pas besoin d'installer de pilote WIA pour qu'un périphérique WIA fonctionne, car un pilote WIA standard est déjà installé dans le système d'exploitation Windows. Un scanner compatible WIA est prêt à fonctionner immédiatement après son installation sous Windows.
4.3. Transfert d'une image d'un scanner vers une application cliente
L'API WIA définit deux modes de transfert d'une image numérisée d'un scanner vers une application cliente. Le mode "Memory" permet de transférer une image via la mémoire, c'est-à-dire que les données sont transférées sous forme de tableau d'octets. Le mode "File" permet d'enregistrer l'image numérisée directement dans un fichier.
4.4. Utilisation des fonctionnalités du scanner
Des informations sur l'API WIA sont disponibles sur le site Web de Microsoft:
https://learn.microsoft.com/en-us/previous-versions/windows/desktop/wia/-wia-wia-application-programming-interface
L'API WIA définit une API permettant de numériser facilement des images sans utiliser les fonctionnalités avancées du scanner.
4.5. Vitesse du scanner d'images
L'utilisation de l'API WIA offre de bonnes performances avec un scanner d'images/documents.
4.6. Support technique
L'API WIA est prise en charge par Microsoft.
5. Numérisation de documents avec des scanners ICA
ICA signifie Image Capture. ICA est un framework Apple conçu pour "rechercher des périphériques multimédias et les contrôler par programmation depuis votre application".
Le framework ICA fait partie du système d'exploitation macOS et constitue donc la norme la plus répandue et la plus fondamentale pour l'utilisation des scanners d'images sous macOS.
Pour utiliser un périphérique ICA, vous devez installer le pilote ICA sous macOS.
6. Numérisation de documents avec des scanners ISIS
La norme de numérisation ISIS est une spécification d'interface d'image et de scanner développée par Pixel Translations (désormais intégrée à OpenText) pour piloter des périphériques d'imagerie tels que les scanners. Elle est reconnue pour ses hautes performances, sa modularité et sa spécification complète permettant l'intégration de scanners haute vitesse dans les applications, leur permettant de fonctionner à leur vitesse nominale, voire au-delà. Contrairement à la norme TWAIN, plus répandue, ISIS était initialement destinée aux environnements de production et imposait aux fournisseurs le paiement de redevances pour le pilote, ce qui explique sa moindre popularité dans le secteur des entreprises.
Pour utiliser un périphérique ISIS, le pilote ISIS doit être installé dans le système d'exploitation.
Les pilotes ISIS ont été initialement développés par Pixel Translations, qui a ensuite été intégré à EMC (désormais OpenText). Les fabricants de scanners paient EMC pour utiliser le pilote ISIS et l'intégrer à leur matériel, ou ils achètent des kits de développement et des exemples de code auprès de sociétés comme DELL EMC Captiva pour créer leurs propres pilotes ISIS.
L'utilisation du pilote ISIS offre la meilleure vitesse possible pour votre scanner de documents.
7. Quel protocole de numérisation d'images choisir?
Le choix du protocole de numérisation doit se baser non seulement sur les caractéristiques techniques des appareils, mais aussi sur les conditions d'utilisation réelles, les besoins de l'entreprise et les limitations de l'infrastructure.
Type et modèle de scanner:
- Les scanners de documents professionnels haut de gamme prennent toujours en charge la norme TWAIN et, dans la plupart des cas, la norme ISIS.
- Les imprimantes multifonctions (MFP) professionnelles haut de gamme prennent presque toujours en charge la norme TWAIN.
- Les scanners d'images économiques prennent généralement en charge la norme TWAIN et parfois l'API WIA.
- Les imprimantes multifonctions économiques prennent parfois uniquement en charge l'API WIA.
- Les scanners d'images et les imprimantes multifonctions réseau prennent souvent en charge le protocole eSCL.
Conseil: Avant de commencer le développement, dressez la liste des modèles de scanners compatibles avec votre logiciel et consultez leurs spécifications sur le site web du fabricant.
Exigences de qualité et de vitesse:
- Si un niveau de détail maximal est important (par exemple, lors de la numérisation de documents d'archives), choisissez TWAIN ou ISIS avec prise en charge de la haute résolution (DPI) et de la correction des couleurs.
- Pour la numérisation en flux continu de grands volumes de documents papier, les périphériques compatibles TWAIN ou ISIS sont plus adaptés.
- Pour la numérisation bureautique courante (actes, factures, notes de service), vous pouvez choisir TWAIN, WIA ou eSCL sous Windows, SANE ou eSCL sous Linux, ICA ou eSCL sous macOS.
Caractéristiques du flux de travail:
- Numérisation recto verso (duplex): prise en charge optimale par TWAIN et ISIS.
- Chargeur automatique de documents (ADF): pris en charge par TWAIN et ISIS, partiellement par WIA.
- Recadrage et alignement automatiques: dépendent du pilote du périphérique et du protocole sélectionné.
Exemple: si vous avez des archives contenant des milliers de feuilles recto verso, l’absence de prise en charge du recto verso peut doubler le temps de traitement.
Coûts de mise en œuvre et de support:
- TWAIN, WIA, SANE, ICA et eSCL ne nécessitent pas de licence payante pour les pilotes.
- ISIS nécessite souvent des licences payantes et des coûts supplémentaires pour les pilotes.
Pour démarrer un projet avec un budget limité, TWAIN est le choix le plus judicieux.
8. Implémentation dans VintaSoft TWAIN .NET SDK
VintaSoft TWAIN .NET SDK est une bibliothèque .NET professionnelle pour la numérisation d'images. Elle vous permet de créer une application .NET pour contrôler les scanners d'images TWAIN sous Windows et Linux, les scanners d'images SANE sous Linux et les scanners d'images eSCL sous Windows et Linux.
VintaSoft TWAIN .NET SDK fournit une API JavaScript et le service Web TWAIN de VintaSoft, permettant aux développeurs web de créer rapidement et facilement une application web multiplateforme pour la réception d'images provenant de scanners TWAIN (Windows et Linux), de scanners SANE (Linux) et de scanners eSCL (Windows et Linux). Cette application web est compatible avec tous les principaux navigateurs web.
Le choix d'un protocole de numérisation est une décision stratégique pour les développeurs de systèmes de gestion documentaire. TWAIN demeure une norme universelle, et
VintaSoft TWAIN .NET SDK offre une implémentation pratique et flexible, prenant en charge TWAIN, WIA (via TWAIN), SANE et eSCL. Grâce à une intégration adéquate, vous pouvez obtenir un fonctionnement stable avec des scanners de différents fabricants et dans différents environnements, des applications de bureau aux services cloud.