I moderni sistemi di elaborazione dei documenti sono sempre più integrati con dispositivi periferici per ottenere copie digitali di supporti cartacei. La questione chiave nello sviluppo di tali soluzioni è la scelta di un protocollo per l'interazione con uno scanner di immagini/documenti. In questo articolo analizzeremo i principali standard, ne valuteremo i vantaggi e i limiti e considereremo come implementarne il supporto utilizzando
VintaSoft TWAIN .NET SDK.
1. Scansione di documenti con scanner TWAIN
TWAIN è uno standard che definisce un protocollo software e un'API (Application Programming Interface) per la comunicazione tra applicazioni software e dispositivi di imaging come scanner e fotocamere digitali.
TWAIN è uno standard e pertanto garantisce l'uniformità di interazione tra diversi dispositivi e applicazioni, semplificando lo sviluppo e l'utilizzo di software per la gestione delle immagini.
1.1. Sistemi operativi supportati
Lo standard TWAIN dichiara il supporto per i sistemi operativi Windows, Linux e macOS.
1.2. Disponibilità di un driver di dispositivo
Per lavorare con un dispositivo TWAIN è necessario installare un driver TWAIN nel sistema operativo.
Il driver TWAIN per uno scanner di immagini è nella maggior parte dei casi sviluppato dal produttore dello scanner di immagini: grazie a ciò, il driver TWAIN fornisce accesso a tutte le funzionalità dello scanner di immagini e viene garantita la massima velocità di lavoro con lo scanner di immagini.
Lo standard TWAIN è lo standard più diffuso e di base per lavorare con gli scanner di immagini nel sistema operativo Windows. Quasi tutti gli scanner di immagini dispongono di un driver TWAIN per Windows.
Al momento, i dipendenti di VintaSoft hanno visto driver TWAIN funzionanti per Linux solo da Kodak.
I dipendenti di VintaSoft non sanno nulla dell'esistenza di driver TWAIN per macOS per gli scanner di immagini moderni. Sui forum Apple, è possibile trovare informazioni secondo cui Apple ha ufficialmente interrotto il supporto dello standard TWAIN nel suo sistema operativo macOS intorno al 2019.
1.3. Trasferimento di un'immagine da uno scanner di immagini a un'applicazione client
Lo standard TWAIN definisce 3 modalità per il trasferimento di un'immagine scansionata da uno scanner di immagini a un'applicazione client. La modalità "Nativa" consente di trasferire un'immagine come oggetto Windows Bitmap. La modalità "Memoria" consente di trasferire un'immagine tramite memoria, ovvero i dati vengono trasferiti come un array di byte contenente dati immagine "grezzi" o dati immagine codificati (ad esempio, CCITT4 o JPEG). La modalità "File" consente di salvare l'immagine scansionata direttamente in un file. La presenza di tre modalità consente di selezionare la modalità che meglio si adatta alla logica dell'applicazione client e garantisce le massime prestazioni e flessibilità.
1.4. Utilizzo delle funzionalità dello scanner di immagini
Lo standard TWAIN contiene oltre 700 pagine di testo e descrive in dettaglio il processo di interazione tra il driver TWAIN e l'applicazione. Lo standard TWAIN consente di utilizzare quasi tutte le funzionalità di uno scanner di immagini.
1.5. Velocità dello scanner di immagini
L'utilizzo dello standard TWAIN garantisce un'eccellente velocità di lavoro con uno scanner di immagini/documenti.
1.6. Supporto tecnologico
Lo standard TWAIN è sviluppato dal "TWAIN Working Group" (sito web
https://twain.org), un'organizzazione no-profit che supporta e sviluppa lo standard TWAIN. Questo gruppo include diversi produttori di scanner per immagini e società di sviluppo software.
2. Scansione di documenti con scanner SANE
SANE (Scanner Access Now Easy) è un'interfaccia di programmazione applicativa open source che fornisce un'interfaccia standardizzata per l'accesso agli scanner di immagini raster. SANE consente di acquisire immagini da vari dispositivi, come scanner piani e fotocamere. SANE implementa una netta separazione tra il driver del dispositivo e l'interfaccia utente del dispositivo.
2.1. Sistemi operativi supportati
L'API SANE è lo standard più diffuso e basilare per lavorare con gli scanner per immagini sul sistema operativo Linux.
2.2. Disponibilità di un driver di dispositivo
Quasi tutti gli scanner di immagini dispongono di un driver SANE per Linux.
Esistono driver SANE forniti dal produttore dello scanner di immagini o dalla community SANE. SANE è un'API e definisce solo l'architettura del driver SANE. L'implementazione specifica del driver SANE dipende dallo sviluppatore del driver. La maggior parte dei driver SANE è sviluppata da sviluppatori della community SANE.
Per lavorare con i dispositivi SANE è necessario installare il driver SANE nel sistema operativo Linux. L'elenco dei dispositivi che supportano l'API SANE è disponibile qui:
http://www.sane-project.org/sane-supported-devices.html
2.3. Trasferimento di un'immagine da uno scanner di immagini a un'applicazione client
Il dispositivo SANE trasferisce i dati dell'immagine tramite la memoria, ovvero i dati dell'immagine scansionata vengono trasferiti come un array di byte, che contiene i dati dell'immagine "grezzi".
2.4. Utilizzo delle funzionalità dello scanner di immagini
Il documento che definisce l'API SANE non è di grandi dimensioni e definisce le funzionalità per il lavoro di base con lo scanner di immagini, ovvero l'API SANE definisce un'API per l'acquisizione di immagini semplice senza utilizzare le funzionalità avanzate dello scanner di immagini. Allo stesso tempo, nulla impedisce allo sviluppatore del driver SANE di implementare il supporto per funzionalità avanzate, ma queste saranno funzionalità esterne all'API SANE.
2.5. Velocità dello scanner di immagini
L'utilizzo dell'API SANE garantisce buone prestazioni con lo scanner di immagini/documenti.
2.6. Supporto tecnologico
Il progetto SANE (sito web
http://www.sane-project.org) è un progetto open source, il cui codice sorgente può essere liberamente modificato e distribuito per la collaborazione della comunità e per facilitare miglioramenti e aggiornamenti continui.
3. Scansione di documenti con scanner eSCL
eSCL (eXtensible Scanner Control Library) è uno standard sviluppato dalla Mopria Alliance che definisce un protocollo di scansione delle immagini per abilitare la scansione wireless su vari dispositivi senza la necessità di installare driver. Il protocollo eSCL utilizza HTTP(S) e XML per comunicare tra lo scanner di immagini e l'applicazione che lo utilizza.
3.1. Sistemi operativi supportati
Il protocollo eSCL può essere utilizzato su Windows, Linux, macOS, Android. Il protocollo eSCL può utilizzare una rete cablata o wireless.
3.2. Disponibilità di un driver di dispositivo
Per lavorare con un dispositivo eSCL non è necessario installare un driver nel sistema operativo. In genere, un dispositivo eSCL è un dispositivo Linux che esegue un server web che gestisce le richieste al dispositivo utilizzando il protocollo eSCL. Il server web fornisce anche un'interfaccia web che consente all'utente di configurare i parametri di scansione e gestire comodamente le attività di scansione delle immagini tramite un browser web.
Un elenco dei dispositivi che supportano il protocollo eSCL è disponibile qui:
https://mopria.org/it/certified-products
3.3. Trasferimento di un'immagine da uno scanner di immagini a un'applicazione client
Lo standard eSCL specifica che qualsiasi dispositivo eSCL deve supportare il trasferimento di un'immagine scansionata come flusso JPEG o PDF, ovvero affinché un'applicazione client riceva un'immagine scansionata da uno scanner di immagini, vengono eseguiti i seguenti passaggi:
- Il dispositivo eSCL scansiona un documento e riceve i dati dell'immagine grezza.
- Il dispositivo eSCL codifica l'immagine scansionata in un file JPEG o PDF.
- Il dispositivo eSCL invia il flusso JPEG o PDF all'applicazione client tramite una connessione HTTP.
- L'applicazione client riceve il flusso JPEG o PDF e lo utilizza per i propri scopi.
Se l'immagine scansionata deve essere salvata immediatamente in un file o in un database, il processo di trasferimento dell'immagine dallo scanner all'applicazione client è ottimale. Se è necessario visualizzare l'immagine scansionata dopo la scansione, sarà necessario decodificare l'immagine JPEG o eseguire il rendering della pagina PDF - questo rappresenta uno svantaggio, poiché in linea di principio comporta un'inutile "codifica-decodifica" intermedia dell'immagine scansionata.
Lo standard eSCL definisce anche la capacità di ricevere dati di immagine "grezzi" da uno scanner di immagini, ma questa opzione non è obbligatoria e non è supportata da tutti gli scanner eSCL.
3.4. Utilizzo delle funzionalità dello scanner di immagini
Le specifiche del protocollo eSCL contengono oltre 70 pagine e definiscono le funzionalità per il lavoro di base con uno scanner di immagini, ovvero il protocollo eSCL è adatto per la scansione di immagini semplici senza utilizzare le funzionalità avanzate di uno scanner di immagini.
3.5. Velocità dello scanner di immagini
La velocità di scansione delle immagini dipende dalla velocità della rete attraverso la quale sono connessi lo scanner di immagini eSCL e l'applicazione client. Nella maggior parte dei casi, l'utilizzo del protocollo eSCL garantisce una buona velocità di lavoro con uno scanner di immagini/documenti.
3.6. Supporto tecnologico
La Mopria Alliance (sito web
https://mopria.org) è un'organizzazione di produttori di stampanti e sviluppatori software che crea e promuove standard universali per la stampa e la scansione wireless da dispositivi mobili. Gli standard Mopria consentono ai dispositivi certificati di trovarsi sulla rete e scambiare dati, offrendo stampe e scansioni semplici e pratiche da una varietà di dispositivi mobili come smartphone e tablet.
4. Scansione di documenti con scanner WIA
WIA è l'acronimo di Windows Image Acquisition. È un componente del sistema operativo Windows che consente al software di comunicare con dispositivi di imaging come scanner e fotocamere digitali. WIA fornisce un'API (Application Programming Interface) che consente agli sviluppatori di creare applicazioni in grado di accedere alle immagini da questi dispositivi.
4.1. Sistemi operativi supportati
WIA è un componente del sistema operativo Windows e pertanto i dispositivi compatibili con WIA possono essere utilizzati solo su Windows.
4.2. Disponibilità di un driver di dispositivo
Non è necessario installare un driver WIA affinché un dispositivo WIA funzioni, poiché un driver WIA standard è già installato nel sistema operativo Windows. Uno scanner che supporta WIA è pronto per funzionare immediatamente dopo l'installazione in Windows.
4.3. Trasferimento di un'immagine da uno scanner di immagini a un'applicazione client
L'API WIA definisce 2 modalità per il trasferimento di un'immagine scansionata da uno scanner di immagini a un'applicazione client. La modalità "Memoria" consente di trasferire un'immagine tramite memoria, ovvero i dati vengono trasferiti come un array di byte. La modalità "File" consente di salvare l'immagine scansionata direttamente in un file.
4.4. Utilizzo delle funzionalità dello scanner di immagini
Le informazioni sull'API WIA sono disponibili sul sito Web Microsoft:
https://learn.microsoft.com/en-us/previous-versions/windows/desktop/wia/-wia-wia-application-programming-interface
L'API WIA definisce un'API per la scansione semplice delle immagini senza utilizzare funzionalità avanzate di scansione delle immagini.
4.5. Velocità dello scanner di immagini
L'utilizzo dell'API WIA offre buone prestazioni con uno scanner di immagini/documenti.
4.6. Supporto tecnologico
L'API WIA è supportata da Microsoft.
5. Scansione di documenti con scanner ICA
ICA sta per Image Capture. ICA è un framework Apple progettato per "cercare dispositivi multimediali e controllarli a livello di programmazione dall'applicazione".
Il framework ICA fa parte del sistema operativo macOS ed è quindi lo standard più diffuso e basilare per lavorare con gli scanner di immagini nel sistema operativo macOS.
Per lavorare con un dispositivo ICA è necessario installare il driver ICA nel sistema operativo macOS.
6. Scansione di documenti con scanner ISIS
Lo standard di scansione ISIS è una specifica "Image and Scanner Interface" sviluppata da Pixel Translations (ora parte di OpenText) per la gestione di dispositivi di imaging come gli scanner. È noto per le sue elevate prestazioni, la modularità e le specifiche complete per l'integrazione di scanner ad alta velocità nelle applicazioni, consentendo loro di funzionare alla velocità nominale o superiore. A differenza del più comune standard TWAIN, ISIS era inizialmente destinato agli ambienti di produzione e richiedeva ai fornitori il pagamento di una royalty per il driver, rendendolo meno diffuso nel settore aziendale.
Per lavorare con un dispositivo ISIS, il driver ISIS deve essere installato nel sistema operativo.
I driver ISIS sono stati originariamente sviluppati da Pixel Translations, che in seguito è entrata a far parte di EMC (ora OpenText). I produttori di scanner pagano EMC per utilizzare il driver ISIS e includerlo nel loro hardware, oppure acquistano kit di sviluppo e codice di esempio da aziende come DELL EMC Captiva per creare i propri driver ISIS.
L'utilizzo del driver ISIS garantisce la velocità migliore/massima per lo scanner di documenti.
7. Quale protocollo di scansione delle immagini scegliere?
La scelta del protocollo di scansione dovrebbe basarsi non solo sulle caratteristiche tecniche dei dispositivi, ma anche sulle effettive condizioni operative, sui requisiti aziendali e sui limiti dell'infrastruttura.
Tipo e modello di scanner:
- Gli scanner di documenti professionali più costosi supportano sempre lo standard TWAIN e nella maggior parte dei casi supportano lo standard ISIS.
- I costosi dispositivi multifunzione (MFP) professionali supportano quasi sempre lo standard TWAIN.
- Gli scanner di immagini economici solitamente supportano lo standard TWAIN e talvolta supportano l'API WIA.
- Gli MFP economici a volte supportano solo l'API WIA.
- Gli scanner di immagini di rete e le MFP spesso supportano il protocollo eSCL.
Suggerimento: prima di iniziare lo sviluppo, raccogli un elenco dei modelli di scanner con cui il tuo software funzionerà e controlla le loro specifiche sul sito Web del produttore.
Requisiti di qualità e velocità:
- Se è importante il massimo dettaglio (ad esempio, quando si digitalizzano documenti d'archivio), scegli TWAIN o ISIS con supporto per DPI elevati e correzione del colore.
- Per la scansione di grandi quantità di documenti cartacei, sono più adatti i dispositivi con supporto TWAIN o ISIS.
- Per la scansione di base in ufficio (atti, fatture, promemoria), puoi scegliere TWAIN, WIA o eSCL in Windows, SANE o eSCL in Linux, ICA o eSCL in macOS.
Funzionalità del flusso di lavoro:
- Scansione fronte-retro (duplex) - meglio supportata da TWAIN e ISIS.
- Alimentatore automatico di documenti (ADF) - supportato da TWAIN e ISIS, parzialmente in WIA.
- Ritaglio e allineamento automatici - dipendono dal driver del dispositivo e dal protocollo selezionato.
Esempio: se si dispone di un archivio con migliaia di fogli fronte-retro, la mancanza del supporto duplex può raddoppiare il tempo di funzionamento.
Costi di implementazione e supporto:
- TWAIN, WIA, SANE, ICA, eSCL non richiedono licenze a pagamento per i driver.
- ISIS richiede spesso licenze a pagamento e costi aggiuntivi per i driver.
Per avviare un progetto con un budget limitato, TWAIN è la scelta più razionale.
8. Implementazione in VintaSoft TWAIN .NET SDK
VintaSoft TWAIN .NET SDK è una libreria .NET professionale per la scansione di immagini, che consente di creare un'applicazione .NET per controllare gli scanner di immagini TWAIN in Windows e Linux, gli scanner di immagini SANE in Linux, gli scanner di immagini eSCL in Windows e Linux.
Inoltre
VintaSoft TWAIN .NET SDK fornisce API JavaScript e il servizio VintaSoft Web TWAIN, che consentono a uno sviluppatore web di creare rapidamente e facilmente un'applicazione web multi-browser per la ricezione di immagini dagli scanner di immagini TWAIN in Windows e Linux, dagli scanner di immagini SANE in Linux, dagli scanner di immagini eSCL in Windows e Linux. L'applicazione web sviluppata può essere utilizzata in tutti i principali browser web.
La scelta di un protocollo di scansione è una decisione strategica per gli sviluppatori di sistemi di gestione documentale. TWAIN rimane uno standard universale e
VintaSoft TWAIN .NET SDK offre un'implementazione comoda e flessibile, supportando TWAIN, WIA (tramite TWAIN), SANE ed eSCL. Con una corretta integrazione, è possibile ottenere un funzionamento stabile con scanner di diversi produttori e in diversi ambienti, dalle applicazioni desktop ai servizi cloud.