- Digitalización
- Preprocesamiento de las imágenes escaneadas
Implementación del escenario
Paso 1. Carga de ABBYY FineReader Engine
Paso 1. Carga de ABBYY FineReader Engine
Para empezar a trabajar con ABBYY FineReader Engine, debe crear el objeto Engine. El objeto Engine es el objeto principal en la jerarquía de objetos de ABBYY FineReader Engine y proporciona varias opciones de configuración global, algunos métodos de procesamiento y métodos para crear los demás objetos.Para crear el objeto Engine, puede usar la función InitializeEngine. Consulte también otras formas de cargar el objeto Engine (Win).
C#
Paso 2. Escaneo
Paso 2. Escaneo
ABBYY FineReader Engine ofrece el objeto ScanManager para gestionar las fuentes de digitalización. La propiedad ScanSources de este objeto proporciona acceso a la lista de todos los escáneres disponibles, mientras que el método FindScanSources permite seleccionar los escáneres según el tipo de API que proporcionan y el tipo de interfaz de usuario que se desea utilizar para configurar las opciones de digitalización.Para escanear y guardar los archivos en disco, puede usar cualquiera de estos dos métodos del objeto ScanSource: el método Scan, que no devuelve el control hasta que el escaneo se completa, y el método BeginScan, que inicia la operación de escaneo asíncrono y devuelve el control de inmediato.Puede implementar la interfaz IScanCallback y utilizarla para recibir notificaciones sobre el progreso del escaneo.Los siguientes parámetros son accesibles a través de la API de ABBYY FineReader Engine 12: brillo, color, resolución, tipo de compresión de imagen, ángulo de rotación de imagen, tamaño del área de escaneo, modo de escaneo dúplex, modo de alimentador automático, una pausa entre páginas y otros más. Los parámetros de escaneo se configuran mediante la propiedad ScanSettings del objeto ScanSource. Esta propiedad es necesaria para acceder al objeto ScanSourceSettings, que, a su vez, proporciona acceso a la configuración de escaneo de una fuente.Para escanear las imágenes de forma síncrona:
- Cree un objeto ScanManager. Puede especificar si los registros de escaneo se escriben con el parámetro de entrada del método CreateScanManager.
- Seleccione el origen de escaneo mediante el método FindScanSources del objeto ScanManager, especificando la API y el tipo de interfaz de usuario que debe admitir el escáner.
- Si elige no mostrar ningún cuadro de diálogo para que el usuario configure por sí mismo las opciones de digitalización, ajuste dichas opciones mediante la propiedad ScanSettings del ScanSource seleccionado. Seleccione los valores adecuados de brillo, resolución y de los demás parámetros en las propiedades correspondientes del objeto ScanSourceSettings. Puede comprobar qué ajustes están disponibles para este escáner mediante la propiedad Capabilities del ScanSource.
- Especifique el nombre de la carpeta en la que se almacenarán las páginas escaneadas. El nombre de la carpeta debe ser una variable BSTR, por ejemplo, ScanFolder.
- Ejecute el método Scan del objeto ScanSource e indique como parámetros el tipo de cuadro de diálogo que se mostrará al usuario (pase la constante SSUIT_None para no mostrar ninguno) y la ruta de ScanFolder a la carpeta con los resultados.
- Este método devolverá los nombres de los archivos de imagen como un objeto StringsCollection. Puede obtener los nombres de los archivos de imagen de este objeto StringsCollection y, a continuación, procesar los archivos como archivos de imagen normales.
- Cree un objeto que implemente la interfaz IScanCallback. En el caso de la operación de escaneo asíncrono, las notificaciones de la interfaz de callback son muy útiles.
- Cree un objeto ScanManager. Puede especificar si los registros de digitalización deben escribirse en el parámetro de entrada del método CreateScanManager.
- Seleccione el origen de escaneo mediante el método FindScanSources del objeto ScanManager, especificando la API y el tipo de interfaz de usuario que debe admitir el escáner.
- Si decide no mostrar ningún cuadro de diálogo para que el usuario configure él mismo las opciones de digitalización, ajuste las opciones de digitalización mediante la propiedad ScanSettings del ScanSource seleccionado. Seleccione los valores adecuados de brillo, resolución y los demás parámetros en las propiedades correspondientes del objeto ScanSourceSettings. Puede comprobar qué ajustes están disponibles para este escáner mediante la propiedad Capabilities del ScanSource.
- Especifique el nombre de la carpeta en la que se almacenarán las páginas escaneadas. El nombre de la carpeta debe ser una variable de tipo BSTR, por ejemplo, ScanFolder.
- Ejecute el método BeginScan del objeto ScanSource e indique como parámetros el tipo de cuadro de diálogo que se mostrará al usuario (pase la constante SSUIT_None para no mostrar ninguno) y la ruta ScanFolder de la carpeta con los resultados. También debe pasar el puntero al objeto callback que creó.
- La ruta del archivo de imagen se devuelve con la notificación OnImageScanned de la interfaz IScanCallback, y la finalización de la operación se indica con la notificación OnScanComplete. Como usted proporciona la implementación de estos métodos, puede elegir qué hacer en cada una de estas situaciones. Por ejemplo, al recibir la ruta de un archivo de imagen, puede trabajar con él como con cualquier otro archivo del disco, cargándolo para procesarlo con FineReader Engine de la forma habitual.
C#
Paso 3. Liberación de ABBYY FineReader Engine
Paso 3. Liberación de ABBYY FineReader Engine
Después de terminar de trabajar con ABBYY FineReader Engine, debe liberar el objeto Engine. Para ello, use la función exportada DeinitializeEngine.
C#
Recursos necesarios
Optimización adicional
- Separación de documentos
- En este escenario, puede que necesite agrupar el flujo de imágenes entrantes en documentos. Por ejemplo, puede que conozca el número de páginas de cada documento, o que necesite asegurarse de que haya páginas separadoras con códigos de barras entre la última página del primer documento y la primera página del siguiente. Consulte el escenario de reconocimiento de códigos de barras.
