- Scansione
- Pre-elaborazione delle immagini acquisite
Implementazione dello scenario
Passaggio 1. Caricamento di ABBYY FineReader Engine
Passaggio 1. Caricamento di ABBYY FineReader Engine
Per iniziare a lavorare con ABBYY FineReader Engine, devi creare l’oggetto Engine. L’oggetto Engine è l’oggetto di livello superiore nella gerarchia degli oggetti di ABBYY FineReader Engine e fornisce diverse impostazioni globali, alcuni metodi di elaborazione e i metodi per creare gli altri oggetti.Per creare l’oggetto Engine, puoi usare la funzione InitializeEngine. Vedi anche altri modi per caricare l’oggetto Engine (Win).
C#
Fase 2. Scansione
Fase 2. Scansione
ABBYY FineReader Engine mette a disposizione un oggetto ScanManager per la gestione delle sorgenti di scansione. La proprietà ScanSources di questo oggetto consente di accedere all’elenco di tutti gli scanner disponibili, mentre il metodo FindScanSources permette di selezionare gli scanner in base al tipo di API fornito e al tipo di interfaccia utente da utilizzare per configurare le opzioni di scansione.Per acquisire e salvare i file su disco, è possibile utilizzare uno dei due metodi dell’oggetto ScanSource: il metodo Scan, che non restituisce il controllo fino al completamento della scansione, e il metodo BeginScan, che avvia l’operazione di scansione asincrona e restituisce il controllo immediatamente.È possibile implementare l’interfaccia IScanCallback e utilizzarla per ricevere notifiche sull’avanzamento della scansione.I seguenti parametri sono accessibili tramite l’API di ABBYY FineReader Engine 12: luminosità, colore, risoluzione, tipo di compressione dell’immagine, angolo di rotazione dell’immagine, dimensioni dell’area di scansione, modalità di scansione fronte-retro, modalità alimentatore automatico, una pausa tra le pagine e altri ancora. I parametri di scansione vengono impostati tramite la proprietà ScanSettings dell’oggetto ScanSource. Questa proprietà è necessaria per accedere all’oggetto ScanSourceSettings, che a sua volta fornisce accesso alle impostazioni di scansione di una sorgente.Per eseguire la scansione delle immagini in modo sincrono:
- Creare un oggetto ScanManager. È possibile specificare, tramite il parametro di input del metodo CreateScanManager, se i log di scansione devono essere registrati.
- Selezionare la sorgente di scansione utilizzando il metodo FindScanSources dell’oggetto ScanManager, specificando il tipo di API e di UI supportato dallo scanner.
- Se scegli di non visualizzare alcuna finestra di dialogo per consentire all’utente di impostare autonomamente le opzioni di scansione, configura tali opzioni utilizzando la proprietà ScanSettings del ScanSource selezionato. Seleziona i valori appropriati per luminosità, risoluzione e gli altri parametri nelle proprietà corrispondenti dell’oggetto ScanSourceSettings. Puoi verificare quali impostazioni sono disponibili per questo scanner utilizzando la proprietà Capabilities di ScanSource.
- Specificare il nome della cartella in cui verranno archiviate le pagine acquisite tramite scansione. Il nome della cartella deve essere una variabile BSTR, ad esempio ScanFolder.
- Esegui il metodo Scan dell’oggetto ScanSource, specificando come parametri il tipo di finestra di dialogo da mostrare all’utente (passa la costante SSUIT_None per non visualizzare alcuna finestra) e il percorso ScanFolder della cartella contenente i risultati.
- I nomi dei file immagine verranno restituiti da questo metodo come oggetto StringsCollection. È quindi possibile recuperare i nomi dei file immagine da questo oggetto StringsCollection e poi elaborare i file come normali file immagine.
- Creare un oggetto che implementi l’interfaccia
IScanCallback. Nel caso di un’operazione di scansione asincrona, le notifiche fornite dall’interfaccia di callback sono molto utili. - Creare un oggetto ScanManager. È possibile specificare se i log di scansione vengano scritti tramite il parametro di input del metodo CreateScanManager.
- Seleziona la sorgente di scansione utilizzando il metodo FindScanSources dell’oggetto ScanManager, specificando il tipo di API e di interfaccia utente supportato dallo scanner.
- Se si sceglie di non visualizzare alcuna finestra di dialogo che consenta all’utente di impostare autonomamente le opzioni di scansione, configurare le opzioni di scansione utilizzando la proprietà ScanSettings dello ScanSource selezionato. Selezionare i valori appropriati per luminosità, risoluzione e gli altri parametri nelle proprietà corrispondenti dell’oggetto ScanSourceSettings. È possibile verificare quali impostazioni sono disponibili per questo scanner tramite la proprietà Capabilities dello ScanSource.
- Specificare il nome della cartella in cui verranno memorizzate le pagine acquisite. Il nome della cartella deve essere una variabile BSTR, ad esempio ScanFolder.
- Esegui il metodo BeginScan dell’object ScanSource, specificando come parametro il tipo di finestra di dialogo da mostrare all’utente (passa la costante SSUIT_None per non visualizzare alcuna finestra) e il percorso ScanFolder della cartella contenente i risultati. Devi inoltre passare il puntatore all’oggetto di callback che hai creato.
- Il percorso del file immagine viene restituito tramite la notifica OnImageScanned dell’interfaccia IScanCallback, mentre il completamento dell’operazione viene segnalato dalla notifica OnScanComplete. Poiché fornisci l’implementazione di questi metodi, puoi scegliere cosa fare in ciascuna di queste situazioni. Ad esempio, quando ricevi il percorso di un file immagine, puoi gestirlo come qualsiasi altro file su disco, caricandolo per l’elaborazione con FineReader Engine nel modo consueto.
C#
Passaggio 3. Rilascio di ABBYY FineReader Engine
Passaggio 3. Rilascio di ABBYY FineReader Engine
Dopo aver terminato di lavorare con ABBYY FineReader Engine, è necessario rilasciare l’oggetto Engine. A tale scopo, utilizzare la funzione esportata DeinitializeEngine.
C#
Risorse richieste
Ottimizzazione aggiuntiva
- Separazione dei documenti
- In questo scenario, potrebbe essere necessario raggruppare il flusso di immagini in ingresso in documenti. Ad esempio, potresti conoscere il numero di pagine di ciascun documento oppure assicurarti che tra l’ultima pagina del primo documento e la prima pagina del documento successivo siano presenti pagine separatrici con barcode. Consulta lo scenario di riconoscimento dei barcode.
