Saltar al pie de página
USANDO IRONOCR

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

Este tutorial está diseñado para ayudar a los principiantes a crear un Escáner de Recibos OCR usando IronOCR, una API OCR en C#. Al final de esta guía, comprenderás cómo implementar el reconocimiento óptico de caracteres (OCR) para convertir diferentes tipos de archivos de recibos en datos editables y buscables usando la API OCR de recibos. Esta tecnología puede ser un cambio de juego para las empresas que buscan automatizar la gestión de gastos y minimizar la entrada manual de datos. ¡Comencemos!

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

  1. Crea un proyecto de consola en C# en Visual Studio.
  2. Instala la biblioteca OCR utilizando el Administrador de Paquetes NuGet.
  3. Carga el recibo en el programa utilizando el método OcrInput.
  4. Extrae el texto usando el método Read.
  5. Muestra el texto extraído en la consola.

Requisitos previos

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

  1. Visual Studio: Este será nuestro Entorno de Desarrollo Integrado (IDE), donde escribiremos y ejecutaremos nuestro código en C#.
  2. Biblioteca IronOCR: Utilizaremos IronOCR, una biblioteca OCR avanzada que se puede integrar fácilmente en aplicaciones C#.
  3. Recibo de Muestra: Un archivo de imagen de recibo llamado Muestra_Recibo.jpg, que utilizaremos para probar nuestra implementación OCR.

Cómo Crear un Escáner de Recibos OCR en C#: Figura 1 - Imagen de recibo de muestra

Paso 1: Configuración del proyecto

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

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

Seleccionar Tipo de Proyecto: En la ventana "Crear un nuevo proyecto", verás una variedad de plantillas de proyectos. En el cuadro de búsqueda, escribe "Aplicación de Consola" para filtrar las opciones, luego selecciona Aplicación de Consola (.NET Core) o Aplicación de Consola (.NET Framework), dependiendo de tu preferencia y compatibilidad. Luego haz clic en el botón Siguiente.

Configura tu Nuevo Proyecto: Ahora, verás una pantalla titulada "Configura tu nuevo proyecto".

  • En el campo Nombre del proyecto, introduce OCRReceiptScanner como el nombre de tu proyecto.
  • Elige o confirma la ubicación donde se guardará tu proyecto en el campo Ubicación.
  • Opcionalmente, también puedes especificar un nombre de solución si deseas que sea diferente al nombre del proyecto.
  • Haz clic en el botón Siguiente después de completar estos detalles.

Información Adicional: Es posible que se te pida seleccionar el .NET Framework de destino. Elige la versión más reciente (a menos que tengas requisitos específicos de compatibilidad) y haz clic en Crear.

Paso 2: Integración de IronOCR

Antes de poder usar la biblioteca IronOCR, necesitamos incluirla en nuestro proyecto. Siga estos pasos:

  1. Haz clic derecho en tu proyecto en el Explorador de Soluciones.
  2. Elige "Administrar paquetes NuGet".
  3. En la ventana del Administrador de Paquetes NuGet, verás varias pestañas como Explorar, Instalado, Actualizaciones y Consolidar. Haz clic en la pestaña Explorar.
  4. En el cuadro de búsqueda, escribe IronOcr. Este es el nombre de la biblioteca que deseamos agregar a nuestro proyecto. Presiona enter para buscar.
  5. Los resultados de la búsqueda mostrarán el paquete de la biblioteca IronOCR. Debería ser uno de los primeros resultados que veas. Haga clic en él para seleccionarlo.
  6. Después de seleccionar el paquete IronOCR, notarás un panel en el lado derecho que muestra la información del 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 - Instalando IronOCR a través del administrador de paquetes NuGet

  1. Haz clic en el botón Instalar. Esta acción podría invitarte a revisar los cambios y mostrar una lista de dependencias que se incluirán junto con IronOcr. Revisa los cambios y las dependencias, y si todo se ve correcto, confirma y procede con la instalación.

Paso 3: Configuración del proyecto

Después de instalar IronOCR, el siguiente paso es configurar tu proyecto. Así es como:

Agregar Espacios de Nombres: En la parte superior de tu archivo Program.cs, incluye los siguientes espacios de nombres:

using IronOcr;
using System;
using IronOcr;
using System;
Imports IronOcr
Imports System
$vbLabelText   $csharpLabel

Configuración de Ajustes: Si tienes configuraciones de ajustes como una clave de API o una clave de licencia, asegúrate de incluirlas. Para IronOCR, necesitarás establecer la clave de licencia como se muestra en el código proporcionado:

License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key" ' replace 'License-Key' with your key
$vbLabelText   $csharpLabel

Paso 4: Lectura del recibo

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

Define el Camino a tu Recibo: Especifica la ruta al archivo de recibo que deseas escanear.

string pdfFilePath = "Sample_Receipt.jpg";
string pdfFilePath = "Sample_Receipt.jpg";
Dim pdfFilePath As String = "Sample_Receipt.jpg"
$vbLabelText   $csharpLabel

Bloque Try-Catch: Implementa el manejo de errores utilizando un bloque try-catch. Esto te ayudará a manejar cualquier excepción que ocurra durante el proceso OCR.

try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
Try
	' OCR code will go here
Catch ex As Exception
	' Handle exceptions here
	Console.WriteLine($"An error occurred: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Paso 5: Implementación del OCR

En el Paso 5, profundizamos en la funcionalidad central de nuestra aplicación: implementar OCR para leer e interpretar los datos de nuestro recibo. Esto implica inicializar el motor OCR, configurar la entrada, realizar la operación 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()
$vbLabelText   $csharpLabel

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

Configurar la entrada de OCR

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

using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
Using input = New OcrInput(pdfFilePath)
	' OCR processing will go here
End Using
$vbLabelText   $csharpLabel

En este segmento, OcrInput se usa para especificar el archivo que deseamos procesar. pdfFilePath es una variable que contiene la ruta a nuestro archivo de recibo. Al pasar esta variable a OcrInput, le estamos diciendo al motor OCR, "Aquí está el archivo que quiero que leas." La declaración using es una construcción especial de C# que asegura que los recursos utilizados por OcrInput (como los controladores de archivos) se liberen adecuadamente una vez que el procesamiento haya terminado. Es una forma de gestionar los recursos de manera eficiente y garantizar que tu aplicación funcione sin problemas sin uso innecesario de memoria.

Realizar OCR

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

var result = ocr.Read(input);
var result = ocr.Read(input);
Dim result = ocr.Read(input)
$vbLabelText   $csharpLabel

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

Generar los resultados

Finalmente, mostramos el texto reconocido por el proceso OCR:

Console.WriteLine(result.Text);
Console.WriteLine(result.Text);
Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

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

using IronOcr;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Set your IronOCR license key
        License.LicenseKey = "Your-License-Key";

        // Define the path to the receipt image
        string pdfFilePath = "Sample_Receipt.jpg";

        try
        {
            // Initialize the OCR engine
            var ocr = new IronTesseract();

            // Define the input file
            using (var input = new OcrInput(pdfFilePath))
            {
                // Perform OCR and get the result
                var result = ocr.Read(input);

                // Display the extracted text
                Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions and log them if necessary
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
using IronOcr;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Set your IronOCR license key
        License.LicenseKey = "Your-License-Key";

        // Define the path to the receipt image
        string pdfFilePath = "Sample_Receipt.jpg";

        try
        {
            // Initialize the OCR engine
            var ocr = new IronTesseract();

            // Define the input file
            using (var input = new OcrInput(pdfFilePath))
            {
                // Perform OCR and get the result
                var result = ocr.Read(input);

                // Display the extracted text
                Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions and log them if necessary
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
Imports IronOcr
Imports System

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Set your IronOCR license key
		License.LicenseKey = "Your-License-Key"

		' Define the path to the receipt image
		Dim pdfFilePath As String = "Sample_Receipt.jpg"

		Try
			' Initialize the OCR engine
			Dim ocr = New IronTesseract()

			' Define the input file
			Using input = New OcrInput(pdfFilePath)
				' Perform OCR and get the result
				Dim result = ocr.Read(input)

				' Display the extracted text
				Console.WriteLine(result.Text)
			End Using
		Catch ex As Exception
			' Handle exceptions and log them if necessary
			Console.WriteLine($"An error occurred: {ex.Message}")
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel

Paso 6: Ejecutar su aplicación

  1. Compila el Proyecto: Haz clic en el menú 'Compilar' y luego selecciona 'Compilar Solución'.
  2. Ejecuta el Proyecto: Presiona F5 o haz clic en el botón 'Iniciar' para ejecutar tu aplicación.

Ahora, verás el texto de tu recibo mostrado en la consola. Este texto representa los datos extraídos de la imagen de tu recibo. Así es cómo escaneamos recibos usando IronOCR. Este es un ejemplo simple de cómo usar capacidades OCR para extraer datos de recibos en papel. Es una implementación muy genérica. Puedes modificar tu código para que coincida con el diseño de tus imágenes de recibo.

Cómo Crear un Escáner de Recibos OCR en C#: Figura 3 - Texto extraído del ejemplo de código anterior

Después de eso, puedes usar los datos no estructurados de los recibos que obtuvimos después de escanear los recibos. Podemos obtener información importante de una sección particular del recibo. O podemos mostrar los datos del recibo de una manera más organizada. Podemos hacer una aplicación de software para escanear recibos OCR usando IronOCR. Eso nos ayudará a extraer datos precisos de los campos del recibo.

Conclusión

¡Felicitaciones! Has creado con éxito un escáner de recibos OCR usando 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 y más. Ya no habrá necesidad de revisar los recibos escaneados y extraer datos manualmente.

IronOCR ofrece una prueba gratuita, permitiendo a los usuarios explorar y evaluar sus capacidades sin costo inicial. Para aquellos que buscan integrar y aprovechar todo el espectro de funcionalidades en un entorno profesional, las licencias comienzan en $799, proporcionando una solución integral para escaneo de recibos OCR robusto y necesidades de extracción de datos.

Recuerda, esto es solo el comienzo. Puedes expandir esta aplicación para soportar varios tipos de archivos, mejorar la privacidad de los datos o integrar funciones adicionales como el reconocimiento de campos específicos del recibo, como la cantidad de impuestos, la fecha, los artículos de línea, y más. Con la tecnología OCR, las posibilidades son vastas, allanando el camino para procesos empresariales más eficientes e inteligentes. ¡Feliz programación!

Preguntas Frecuentes

¿Qué es un escáner de recibos OCR y cómo puede beneficiar a las empresas?

Un escáner de recibos OCR es una herramienta que utiliza tecnología de reconocimiento óptico de caracteres para convertir imágenes de recibos en datos editables y buscables. Esto puede mejorar significativamente los procesos empresariales al automatizar tareas de entrada de datos, especialmente en áreas como la gestión de gastos.

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

Para crear un escáner de recibos OCR en C#, puedes usar la biblioteca IronOCR. Comienza configurando un proyecto de consola en C# en Visual Studio, instala IronOCR a través del Administrador de Paquetes NuGet, y sigue el tutorial para implementar la funcionalidad OCR en archivos de recibos.

¿Cuáles son los requisitos previos para configurar un escáner de recibos OCR en C#?

Los requisitos previos incluyen tener instalado Visual Studio, la biblioteca IronOCR, y un archivo de imagen de recibo de muestra para probar el proceso de OCR.

¿Cómo instalo la biblioteca IronOCR en mi proyecto C#?

Puedes instalar la biblioteca IronOCR usando el Administrador de Paquetes NuGet en Visual Studio. Busca IronOCR y agrégala a tu proyecto para acceder a sus funcionalidades de OCR.

¿Cómo funciona la clase IronTesseract en OCR?

La clase IronTesseract se utiliza para iniciar el motor de OCR dentro de la biblioteca IronOCR, permitiendo realizar tareas de reconocimiento de texto en imágenes de recibos.

¿Cómo manejo los errores durante el proceso de OCR en C#?

Los errores durante el proceso de OCR pueden manejarse utilizando un bloque try-catch en tu código C#. Esto ayudará a gestionar excepciones y a asegurar que la aplicación funcione sin problemas incluso cuando se encuentren problemas.

¿Cómo puedo mejorar las funciones de mi escáner de recibos OCR?

Puedes ampliar la aplicación soportando varios tipos de archivo, mejorando la privacidad de los datos o integrando características adicionales como reconocimiento específico de campos para recibos para mejorar la precisión de la extracción de datos.

¿Cuáles son las mejores prácticas para integrar tecnología OCR en aplicaciones C#?

Las mejores prácticas incluyen usar una biblioteca confiable como IronOCR, manejar errores con bloques try-catch y optimizar el escáner para múltiples formatos de recibos para asegurar una extracción precisa de datos.

¿Cómo puedo convertir una imagen de recibo a texto usando C#?

Puedes convertir una imagen de recibo a texto usando la biblioteca IronOCR en C#. Utiliza la clase OcrInput para especificar la imagen y luego procésala con la clase IronTesseract para extraer el texto.

¿Qué opciones de licencia están disponibles para IronOCR?

IronOCR ofrece una prueba gratuita para exploración, con opciones de licenciamiento asequibles para uso extendido en entornos profesionales, haciéndolo accesible para diversas aplicaciones que requieran tecnología OCR.

Kannaopat Udonpant
Ingeniero de Software
Antes de convertirse en Ingeniero de Software, Kannapat completó un doctorado en Recursos Ambientales de la Universidad de Hokkaido en Japón. Mientras perseguía su grado, Kannapat también se convirtió en miembro del Laboratorio de Robótica de Vehículos, que es parte del Departamento de Ingeniería ...
Leer más