USO DE IRONOCR

Cómo crear un escáner de recibos OCR en C#

Actualizado 18 de febrero, 2024
Compartir:

Este tutorial está diseñado para ayudar a los principiantes a crear un Escáner de recibos OCR utilizando el IronOCR una API de OCR en C#. Al final de esta guía, comprenderá cómo implementar el reconocimiento óptico de caracteres (OCR) para convertir diferentes tipos de archivos de recibos en datos editables y con capacidad de búsqueda mediante la API de OCR de recibos. Esta tecnología puede cambiar las reglas del juego para las empresas que buscan automatizar la gestión de gastos y minimizar la introducción manual de datos. Comencemos!

Cómo crear un escáner de recibos OCR en C#1. Crear un proyecto C# Console en Visual Studio

  1. Instale la biblioteca OCR utilizando NuGet Package Manager3. Cargar el recibo en el programa utilizando el método OcrInput.
  2. Extraer el texto utilizando el método Leer5. Mostrar el texto extraído en la consola

Requisitos previos

Antes de sumergirnos en la parte de codificación, asegúrate de que tienes lo siguiente:

  1. Visual Studio: Este será nuestro Entorno de Desarrollo Integrado (IDE)donde escribiremos y ejecutaremos nuestro código C#.
  2. Biblioteca IronOCR: Utilizaremos IronOCR, una librería OCR avanzada que puede integrarse fácilmente en aplicaciones C#.

    1. Recibo de muestra: Un archivo de imagen de recibo llamado Sample_Receipt.jpg, que usaremos para probar nuestro Implementación deOCR.

    Cómo crear un escáner de recibos OCR en C#: Figura 1 - Imagen de un recibo de muestra

Paso 1: Configurar el proyecto

Abre Visual Studio: Localiza el icono de Visual Studio en tu escritorio o en el menú de aplicaciones y haz doble clic sobre él para abrir el programa.

Crear un nuevo proyecto: Una vez abierto Visual Studio, encontrarás una ventana de lanzamiento. Haga clic en el botón "Crear un nuevo proyecto". Si ya has abierto Visual Studio y no ves la ventana de lanzamiento, puedes acceder a ella haciendo clic en Archivo > Nuevo > Proyecto en el menú superior.

Seleccione el tipo de proyecto: En la ventana "Crear un nuevo proyecto", verás varias plantillas de proyecto. En el cuadro de búsqueda, escriba "Console App" para filtrar las opciones y, a continuación, seleccione Console App (.NET Core) o Consola App (.NET Framework)según sus preferencias y compatibilidad. A continuación, pulse el botón Siguiente.

Configure su nuevo proyecto: Ahora, verás una pantalla titulada "Configura tu nuevo proyecto".

  • En el campo Nombre del proyecto, introduzca OCRReceiptScanner como nombre del proyecto.
  • Elija o confirme la ubicación donde se guardará su proyecto en el campo de ubicación.
  • Opcionalmente, también puede especificar un nombre de solución si desea que sea diferente del nombre del proyecto.
  • Pulse el botón Siguiente después de rellenar estos datos.

    Información adicional: Es posible que se le pida que seleccione el .NET Framework de destino. Elija la versión más reciente (a menos que tenga requisitos específicos de compatibilidad) y haga clic en Crear.

Paso 2: Integración de IronOCR

Antes de poder utilizar la biblioteca IronOCR, tenemos que incluirla en nuestro proyecto. Sigue estos pasos:

  1. Haga clic con el botón derecho en su proyecto en el Explorador de soluciones.
  2. Seleccione "Gestionar paquetes NuGet".
  3. En la ventana del Gestor de paquetes NuGet, verás varias pestañas como Buscar, Instalado, Actualizar y Consolidar. Haga clic en la pestaña Buscar.
  4. En el cuadro de búsqueda, escriba IronOcr. Este es el nombre de la biblioteca que deseamos añadir a nuestro proyecto. Pulsa Intro para buscar.
  5. Los resultados de la búsqueda mostrarán el paquete de bibliotecas IronOCR. Debería ser uno de los primeros resultados que veas. Haga clic en él para seleccionarlo.
  6. Tras seleccionar el paquete IronOCR, observará que en la parte derecha aparece un panel con información sobre el paquete, incluida su descripción y versión. También hay un botón Instalar en este panel.

    Cómo crear un escáner de recibos OCR en C#: Figura 2 - Instalación de IronOCR a través del gestor de paquetes NuGet

  7. Haga clic en el botón Instalar. Esta acción puede pedirle que revise los cambios y puede mostrar una lista de dependencias que se incluirán junto con IronOcr. Revise los cambios y dependencias, y si todo parece correcto, confirme y proceda con la instalación.

Paso 3: Configurar el proyecto

Tras instalar IronOCR, el siguiente paso es configurar el proyecto. He aquí cómo:

Añadir espacios de nombres: En la parte superior de su archivo Program.cs, incluya los siguientes espacios de nombres:

using IronOcr;
using System;
using IronOcr;
using System;
Imports IronOcr
Imports System
VB   C#

Ajustes de configuración: Si tienes ajustes de configuración como una clave API o una clave de licencia, asegúrate de incluirlos. Para IronOCR, tendrá que configurar la clave de licencia como se muestra en el código proporcionado:

License.LicenseKey = "License-Key"; //  sustituya "License-Key" por su clave
License.LicenseKey = "License-Key"; //  sustituya "License-Key" por su clave
License.LicenseKey = "License-Key" '  sustituya "License-Key" por su clave
VB   C#

Paso 4: Lectura del recibo

Ahora, vamos a escribir el código para leer el recibo.

Defina la ruta a su recibo: Especifique la ruta del archivo de recibos que desea escanear.

string pdfFilePath = "Sample_Receipt.jpg";
string pdfFilePath = "Sample_Receipt.jpg";
Dim pdfFilePath As String = "Sample_Receipt.jpg"
VB   C#

Bloque try-catch: Implementa el manejo de errores usando un bloque try-catch. Esto le ayudará a gestionar cualquier excepción que se produzca durante el proceso de OCR.

try
{
    //  El código OCR irá aquí
}
catch (Exception ex)
{
    //  Gestione aquí las excepciones
    Console.WriteLine($"An error occurred: {ex.Message}");
}
try
{
    //  El código OCR irá aquí
}
catch (Exception ex)
{
    //  Gestione aquí las excepciones
    Console.WriteLine($"An error occurred: {ex.Message}");
}
Try
	'  El código OCR irá aquí
Catch ex As Exception
	'  Gestione aquí las excepciones
	Console.WriteLine($"An error occurred: {ex.Message}")
End Try
VB   C#

Paso 5: Aplicación del OCR

En el paso 5, nos adentramos en la funcionalidad central de nuestra aplicación: la implementación de OCR para leer e interpretar los datos de nuestro recibo. Esto implica inicializar el motor de OCR, configurar la entrada, realizar la operación de OCR y mostrar los resultados.

Inicializar IronTesseract

La primera parte del código crea una instancia de la clase IronTesseract:

var ocr = new IronTesseract();
var ocr = new IronTesseract();
Dim ocr = New IronTesseract()
VB   C#

Al crear una instancia de IronTesseract, estamos esencialmente configurando nuestra herramienta OCR, preparándola para realizar las tareas de reconocimiento de texto. Es como arrancar el motor de un coche antes de poder conducirlo. Este objeto se utilizará para controlar el proceso de OCR, incluida la lectura de la entrada y la extracción de texto de la misma.

Configurar la entrada de OCR

A continuación, definimos la entrada para nuestro proceso de OCR:

using (var input = new OcrInput(pdfFilePath))
{
    //  El procesamiento OCR irá aquí
}
using (var input = new OcrInput(pdfFilePath))
{
    //  El procesamiento OCR irá aquí
}
Using input = New OcrInput(pdfFilePath)
	'  El procesamiento OCR irá aquí
End Using
VB   C#

En este segmento, OcrInput se utiliza para especificar el archivo que queremos procesar. pdfFilePath es una variable que contiene la ruta a nuestro archivo de recibos. Al pasar esta variable a OcrInput, le estamos diciendo al motor de OCR: "Este es el archivo que quiero que lea". La sentencia using es una construcción especial de C# que asegura que los recursos utilizados por OcrInput (como los gestores de archivos) se liberan correctamente una vez finalizado el tratamiento. Es una forma de gestionar los recursos de manera eficiente y garantizar que su aplicación se ejecute sin problemas y sin un uso innecesario de la memoria.

Realizar OCR

Dentro del bloque using, llamamos al método Read de nuestra instancia ocr:

var result = ocr.Read(input);
var result = ocr.Read(input);
Dim result = ocr.Read(input)
VB   C#

El método Read tomará como parámetro la ruta del archivo de entrada. Esta línea iniciará el escaneo de recibos. Realizará el OCR del archivo de entrada dado, extraerá los datos y los almacenará en una variable resultado. Podemos utilizar el texto extraído de este método para realizar cualquier operación de texto.

Salida de resultados

Por último, obtenemos el texto reconocido por el proceso de OCR:

Console.WriteLine(result.Text);
Console.WriteLine(result.Text);
Console.WriteLine(result.Text)
VB   C#

La variable resultado contiene el resultado del proceso de OCR y resultado.Texto contiene el texto real extraído del recibo. La función Console.WriteLine toma este texto y lo muestra en la consola. Esto le permite ver y verificar los resultados del proceso de OCR. Aquí está el código completo del archivo Program.cs:

using IronOcr;
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string [] args)
    {
        License.LicenseKey = "Your-License-Key";
        string pdfFilePath = "Sample_Receipt.jpg";
        try
        {
            var ocr = new IronTesseract();
            using (var input = new OcrInput(pdfFilePath))
            {
                var result = ocr.Read(input);
                    Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            //  Maneje las excepciones (por ejemplo, archivo no encontrado, errores de OCR) y regístrelas si es necesario.
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
using IronOcr;
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string [] args)
    {
        License.LicenseKey = "Your-License-Key";
        string pdfFilePath = "Sample_Receipt.jpg";
        try
        {
            var ocr = new IronTesseract();
            using (var input = new OcrInput(pdfFilePath))
            {
                var result = ocr.Read(input);
                    Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            //  Maneje las excepciones (por ejemplo, archivo no encontrado, errores de OCR) y regístrelas si es necesario.
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
Imports IronOcr
Imports Microsoft.Extensions.Configuration
Imports System
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		License.LicenseKey = "Your-License-Key"
		Dim pdfFilePath As String = "Sample_Receipt.jpg"
		Try
			Dim ocr = New IronTesseract()
			Using input = New OcrInput(pdfFilePath)
				Dim result = ocr.Read(input)
					Console.WriteLine(result.Text)
			End Using
		Catch ex As Exception
			'  Maneje las excepciones (por ejemplo, archivo no encontrado, errores de OCR) y regístrelas si es necesario.
			Console.WriteLine($"An error occurred: {ex.Message}")
		End Try
	End Sub
End Class
VB   C#

Paso 6: Ejecutar la aplicación

  1. Construir el proyecto: Haga clic en el menú "Construir" y, a continuación, seleccione "Construir solución".
  2. Ejecutar el proyecto: Pulsa F5 o haz clic en el botón 'Start' para ejecutar tu aplicación.

    Ahora, verá el texto de su recibo en la consola. Este texto representa los datos extraídos de la imagen de su recibo. Así escaneamos los recibos con IronOCR. Este es un ejemplo sencillo de uso de las capacidades de OCR para extraer datos de recibos de papel. Es una implementación muy genérica. Puede modificar su código para adaptarlo al diseño de las imágenes de sus recibos.

    Cómo crear un escáner de recibos OCR en C#: Figura 3 - Texto de salida del ejemplo de código anterior

    A continuación, se pueden utilizar los datos no estructurados de los recibos que hemos obtenido tras escanearlos. Podemos obtener información importante de una sección concreta del recibo. O podemos mostrar los datos de los recibos de forma más organizada. Podemos hacer una aplicación de software de escaneo de recibos OCR utilizando el IronOCR. Eso nos ayudará a extraer datos precisos de los campos de recepción.

Conclusión

Enhorabuena! Ha construido con éxito un escáner de recibos OCR utilizando C# y IronOCR. Este escáner puede aumentar significativamente la precisión de la extracción de datos para diversas necesidades empresariales, como el seguimiento de gastos, la gestión de la cadena de suministro, etc. Ya no será necesario revisar los recibos escaneados y extraer los datos manualmente.

IronOCR ofrece un **Prueba gratuita que permite a los usuarios explorar y evaluar sus capacidades sin coste inicial. Para aquellos que buscan integrar y aprovechar todo el espectro de características en un entorno profesional, las licencias comienzan en $599, proporcionando una solución integral para las necesidades robustas de escaneo de recibos OCR y extracción de datos.

Recuerda que esto es sólo el principio. Puede ampliar esta aplicación para que admita varios tipos de archivos, mejore la privacidad de los datos o integre funciones adicionales como el reconocimiento de recibos para campos específicos como el importe del impuesto, la fecha, las partidas, etc. Con la tecnología OCR, las posibilidades son inmensas y allanan el camino hacia procesos empresariales más eficaces e inteligentes. Feliz codificación!

< ANTERIOR
Cómo leer documentos de identidad mediante OCR en C#
SIGUIENTE >
Cómo crear una solución OCR para facturas

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 2,012,139 Ver licencias >
123