Saltar al pie de página
USANDO IRONOCR

API de escaneo de recibos (Tutorial para desarrolladores)

Una API de escaneo de recibos extrae datos clave de los recibos utilizando tecnología avanzada de OCR. Racionaliza el proceso de entrada de datos eliminando errores manuales y mejorando la productividad. La API, versátil y precisa, admite múltiples idiomas, monedas y formatos. Al automatizar el análisis de recibos, las empresas pueden obtener información sobre patrones de gasto y tomar decisiones basadas en datos. Este artículo demostrará cómo utilizar la biblioteca OCR de C#, IronOCR, para extraer información importante de un recibo.

IronOCR

IronOCR es una biblioteca y API OCR versátil desarrollada por Iron Software, que ofrece a los desarrolladores una potente solución para extraer texto de diversas fuentes como documentos escaneados, imágenes y PDFs. Con sus algoritmos avanzados de OCR, visión por computadora y modelos de aprendizaje automático, IronOCR garantiza alta precisión y fiabilidad, incluso en escenarios desafiantes. La biblioteca admite múltiples idiomas y estilos de fuentes, lo que la hace adecuada para aplicaciones globales. Al incorporar IronOCR con capacidades de modelos de aprendizaje automático en sus aplicaciones, los desarrolladores pueden automatizar fácilmente la entrada de datos, el análisis de texto y otras tareas, mejorando la productividad y eficiencia.

Con IronOCR, los desarrolladores pueden fácilmente obtener texto de una variedad de fuentes, incluidos documentos, fotografías, capturas de pantalla e incluso transmisiones de cámara en vivo como respuestas JSON. Al utilizar algoritmos sofisticados y modelos de aprendizaje automático, IronOCR analiza los datos de imagen, reconoce caracteres individuales y los convierte en texto legible por máquina. Este texto extraído puede luego utilizarse para diversos fines, como entrada de datos, recuperación de información, análisis de texto y automatización de tareas manuales.

Requisitos previos

Antes de poder comenzar a trabajar con IronOCR, hay algunos requisitos previos que deben estar en su lugar. Estos requisitos previos incluyen:

  1. Asegúrate de tener un entorno de desarrollo adecuado configurado en tu computadora. Esto típicamente implica tener un Entorno de Desarrollo Integrado (IDE) como Visual Studio instalado.
  2. Es importante tener un entendimiento básico del lenguaje de programación C#. Esto te permitirá comprender y modificar los ejemplos de código proporcionados en el artículo de manera efectiva.
  3. Necesitarás tener la biblioteca IronOCR instalada en tu proyecto. Esto se puede lograr usando el Administrador de Paquetes NuGet dentro de Visual Studio o a través de la interfaz de línea de comandos.

Al asegurarte de que se cumplen estos requisitos previos, estarás listo para sumergirte en el proceso de trabajar con IronOCR.

Creación de un nuevo proyecto de Visual Studio

Para comenzar con IronOCR, el primer paso es crear un nuevo proyecto de Visual Studio.

Abre Visual Studio y ve a Archivos, luego pasa por encima de Nuevo y haz clic en Proyecto.

API de Escaneo de Recibos (Tutorial para Desarrolladores), Figura 1: Imagen de Nuevo Proyecto Imagen de Nuevo Proyecto

En la nueva ventana, selecciona Aplicación de Consola y haz clic en Siguiente.

API de Escaneo de Recibos (Tutorial para Desarrolladores), Figura 2: Aplicación de Consola Aplicación de Consola

Aparecerá una nueva ventana. Escriba el nombre de su nuevo proyecto y ubicación y haga clic en Siguiente.

API de Escaneo de Recibos (Tutorial para Desarrolladores), Figura 3: Configuración del Proyecto Configuración del Proyecto

Finalmente, proporcione el Marco de Trabajo de Destino y haga clic en Crear.

API de Escaneo de Recibos (Tutorial para Desarrolladores), Figura 4: Marco de Trabajo de Destino Marco de Trabajo Objetivo

Ahora que su nuevo proyecto de Visual Studio está creado, instalemos el IronOCR.

Instalación de IronOCR

Hay varios métodos para descargar e instalar la biblioteca IronOCR. Sin embargo, aquí están los dos enfoques más simples.

  1. Usando el Administrador de Paquetes NuGet de Visual Studio
  2. Usando la Línea de Comandos de Visual Studio

Uso del Administrador de paquetes NuGet de Visual Studio

IronOCR puede ser incluido en un proyecto C# utilizando el Administrador de Paquetes NuGet de Visual Studio.

Navega a la interfaz gráfica de usuario del Administrador de Paquetes NuGet seleccionando Herramientas > Administrador de Paquetes NuGet > Administrar Paquetes NuGet para la Solución

API de Escaneo de Recibos (Tutorial para Desarrolladores), Figura 5: Administrador de Paquetes NuGet Administrador de Paquetes NuGet

Después de esto, aparecerá una nueva ventana. Busca IronOCR e instala el paquete en el proyecto.

API de Escaneo de Recibos (Tutorial para Desarrolladores), Figura 6: IronOCR IronOCR

Los paquetes de idiomas adicionales para IronOCR también pueden instalarse utilizando el mismo método descrito anteriormente.

Uso de la línea de comandos de Visual Studio

  1. En Visual Studio, ve a Herramientas > Administrador de Paquetes NuGet > Consola del Administrador de Paquetes
  2. Ingrese la siguiente línea en la pestaña de la Consola del Administrador de Paquetes:

    Install-Package IronOcr

    API de Escaneo de Recibos (Tutorial para Desarrolladores), Figura 7: Consola del Administrador de Paquetes Consola del Administrador de Paquetes

El paquete ahora se descargará/instalará en el proyecto actual y estará listo para usarse.

Extracción de datos mediante la API de OCR de recibos

Extraer datos de imágenes de recibos usando IronOCR y guardarlos en forma de datos estructurados es un salvavidas para la mayoría de los desarrolladores. Usando IronOCR, puede lograr eso con solo unas pocas líneas de código. Usando esto, puede extraer elementos de línea, precios, cantidad de impuestos, monto total y mucho más con diferentes tipos de documentos.

using IronOcr;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

class ReceiptScanner
{
    static void Main()
    {
        var ocr = new IronTesseract();
        // Load the image of the receipt
        using (var input = new OcrInput(@"r2.png"))
        {
            // Perform OCR on the input image
            var result = ocr.Read(input);

            // Regular expression patterns to extract relevant details from the OCR result
            var descriptionPattern = @"\w+\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
            var pricePattern = @"\$\d+(\.\d{2})?";

            // Variables to store extracted data
            var descriptions = new List<string>();
            var unitPrices = new List<decimal>();
            var taxes = new List<decimal>();
            var amounts = new List<decimal>();

            var lines = result.Text.Split('\n');
            foreach (var line in lines)
            {
                // Match each line against the description pattern
                var descriptionMatch = Regex.Match(line, descriptionPattern);
                if (descriptionMatch.Success)
                {
                    descriptions.Add(descriptionMatch.Groups[1].Value.Trim());
                    unitPrices.Add(decimal.Parse(descriptionMatch.Groups[2].Value));

                    // Calculate tax and total amount for each item
                    var tax = unitPrices[unitPrices.Count - 1] * 0.15m;
                    taxes.Add(tax);
                    amounts.Add(unitPrices[unitPrices.Count - 1] + tax);
                }
            }

            // Output the extracted data
            for (int i = 0; i < descriptions.Count; i++)
            {
                Console.WriteLine($"Description: {descriptions[i]}");
                Console.WriteLine($"Quantity: 1.00 Units");
                Console.WriteLine($"Unit Price: ${unitPrices[i]:0.00}");
                Console.WriteLine($"Taxes: ${taxes[i]:0.00}");
                Console.WriteLine($"Amount: ${amounts[i]:0.00}");
                Console.WriteLine("-----------------------");
            }
        }
    }
}
using IronOcr;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

class ReceiptScanner
{
    static void Main()
    {
        var ocr = new IronTesseract();
        // Load the image of the receipt
        using (var input = new OcrInput(@"r2.png"))
        {
            // Perform OCR on the input image
            var result = ocr.Read(input);

            // Regular expression patterns to extract relevant details from the OCR result
            var descriptionPattern = @"\w+\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
            var pricePattern = @"\$\d+(\.\d{2})?";

            // Variables to store extracted data
            var descriptions = new List<string>();
            var unitPrices = new List<decimal>();
            var taxes = new List<decimal>();
            var amounts = new List<decimal>();

            var lines = result.Text.Split('\n');
            foreach (var line in lines)
            {
                // Match each line against the description pattern
                var descriptionMatch = Regex.Match(line, descriptionPattern);
                if (descriptionMatch.Success)
                {
                    descriptions.Add(descriptionMatch.Groups[1].Value.Trim());
                    unitPrices.Add(decimal.Parse(descriptionMatch.Groups[2].Value));

                    // Calculate tax and total amount for each item
                    var tax = unitPrices[unitPrices.Count - 1] * 0.15m;
                    taxes.Add(tax);
                    amounts.Add(unitPrices[unitPrices.Count - 1] + tax);
                }
            }

            // Output the extracted data
            for (int i = 0; i < descriptions.Count; i++)
            {
                Console.WriteLine($"Description: {descriptions[i]}");
                Console.WriteLine($"Quantity: 1.00 Units");
                Console.WriteLine($"Unit Price: ${unitPrices[i]:0.00}");
                Console.WriteLine($"Taxes: ${taxes[i]:0.00}");
                Console.WriteLine($"Amount: ${amounts[i]:0.00}");
                Console.WriteLine("-----------------------");
            }
        }
    }
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System
Imports System.Collections.Generic
Imports System.Text.RegularExpressions

Friend Class ReceiptScanner
	Shared Sub Main()
		Dim ocr = New IronTesseract()
		' Load the image of the receipt
		Using input = New OcrInput("r2.png")
			' Perform OCR on the input image
			Dim result = ocr.Read(input)

			' Regular expression patterns to extract relevant details from the OCR result
			Dim descriptionPattern = "\w+\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)"
			Dim pricePattern = "\$\d+(\.\d{2})?"

			' Variables to store extracted data
			Dim descriptions = New List(Of String)()
			Dim unitPrices = New List(Of Decimal)()
			Dim taxes = New List(Of Decimal)()
			Dim amounts = New List(Of Decimal)()

			Dim lines = result.Text.Split(ControlChars.Lf)
			For Each line In lines
				' Match each line against the description pattern
				Dim descriptionMatch = Regex.Match(line, descriptionPattern)
				If descriptionMatch.Success Then
					descriptions.Add(descriptionMatch.Groups(1).Value.Trim())
					unitPrices.Add(Decimal.Parse(descriptionMatch.Groups(2).Value))

					' Calculate tax and total amount for each item
					Dim tax = unitPrices(unitPrices.Count - 1) * 0.15D
					taxes.Add(tax)
					amounts.Add(unitPrices(unitPrices.Count - 1) + tax)
				End If
			Next line

			' Output the extracted data
			For i As Integer = 0 To descriptions.Count - 1
				Console.WriteLine($"Description: {descriptions(i)}")
				Console.WriteLine($"Quantity: 1.00 Units")
				Console.WriteLine($"Unit Price: ${unitPrices(i):0.00}")
				Console.WriteLine($"Taxes: ${taxes(i):0.00}")
				Console.WriteLine($"Amount: ${amounts(i):0.00}")
				Console.WriteLine("-----------------------")
			Next i
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Como puede ver a continuación, IronOCR puede extraer fácilmente el texto requerido del recibo.

API de Escaneo de Recibos (Tutorial para Desarrolladores), Figura 8: Salida Output

Extraer el recibo completo

Si desea extraer todo el recibo, puede hacerlo fácilmente con unas pocas líneas de código en el recibo OCR.

using IronOcr;
using System;

class WholeReceiptExtractor
{
    static void Main()
    {
        var ocr = new IronTesseract();
        using (var input = new OcrInput(@"r3.png"))
        {
            // Perform OCR on the entire receipt and print text output to console
            var result = ocr.Read(input);
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;
using System;

class WholeReceiptExtractor
{
    static void Main()
    {
        var ocr = new IronTesseract();
        using (var input = new OcrInput(@"r3.png"))
        {
            // Perform OCR on the entire receipt and print text output to console
            var result = ocr.Read(input);
            Console.WriteLine(result.Text);
        }
    }
}
Imports IronOcr
Imports System

Friend Class WholeReceiptExtractor
	Shared Sub Main()
		Dim ocr = New IronTesseract()
		Using input = New OcrInput("r3.png")
			' Perform OCR on the entire receipt and print text output to console
			Dim result = ocr.Read(input)
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

API de Escaneo de Recibos (Tutorial para Desarrolladores), Figura 9: Salida de la API de Escaneo de Recibos Salida de la API de Escaneo de Recibos

La API de escaneo de imágenes de recibos, como IronOCR, ofrece una poderosa solución de software para automatizar la extracción de datos de recibos. Al utilizar tecnología avanzada de OCR, las empresas pueden extraer fácilmente información importante de imágenes o escaneos de recibos, incluidos nombres de proveedores comerciales, fechas de compra, listas detalladas, precios, impuestos y cantidades totales. Con soporte para múltiples idiomas, monedas, formatos de recibos y soporte de código de barras, las empresas pueden racionalizar sus procesos de gestión de recibos, ahorrar tiempo, obtener información sobre patrones de gasto y tomar decisiones basadas en datos. IronOCR, como una biblioteca y API de OCR versátil, proporciona a los desarrolladores las herramientas que necesitan para extraer texto de diversas fuentes de manera precisa y eficiente, permitiendo la automatización de tareas y mejorando la eficiencia general. Al cumplir con los requisitos previos necesarios e integrar IronOCR en sus aplicaciones, los desarrolladores pueden desbloquear los beneficios del procesamiento de datos de recibos y mejorar sus flujos de trabajo.

Para más información sobre IronOCR, visite esta página de licencias. Para saber cómo usar la visión por computadora para encontrar texto, visite esta página de instrucciones de visión por computadora. Para más tutoriales sobre OCR de recibos, visite el siguiente tutorial OCR C#.

Preguntas Frecuentes

¿Cómo puedo automatizar la extracción de datos de recibos usando OCR en C#?

Puede automatizar la extracción de datos de recibos en C# utilizando IronOCR, que le permite extraer detalles clave como artículos de línea, precios, impuestos y montos totales de las imágenes de recibos con alta precisión.

¿Cuáles son los requisitos previos para configurar un proyecto de escaneo de recibos en C#?

Para configurar un proyecto de escaneo de recibos en C#, necesita Visual Studio, conocimiento básico de programación en C# y la biblioteca IronOCR instalada en su proyecto.

¿Cómo instalo la biblioteca OCR usando NuGet Package Manager en Visual Studio?

Abra Visual Studio y vaya a Herramientas > Administrador de paquetes NuGet > Administrar paquetes NuGet para la solución, busque IronOCR e instálelo en su proyecto.

¿Puedo instalar la biblioteca OCR utilizando la línea de comandos de Visual Studio?

Sí, puede instalar IronOCR abriendo la consola del Administrador de Paquetes en Visual Studio y ejecutando el comando: Install-Package IronOcr.

¿Cómo extraigo texto de un recibo completo usando OCR?

Para extraer texto de un recibo completo, use IronOCR para realizar OCR en la imagen completa del recibo y luego muestre el texto extraído usando código en C#.

¿Qué beneficios proporciona una API de escaneo de recibos?

Una API de escaneo de recibos como IronOCR automatiza la extracción de datos, minimiza errores manuales, mejora la productividad y proporciona información sobre patrones de gasto para mejores decisiones comerciales.

¿La biblioteca OCR es compatible con múltiples idiomas y monedas?

Sí, IronOCR es compatible con múltiples idiomas, monedas y formatos de recibos, lo que lo hace ideal para aplicaciones globales.

¿Qué tan precisa es la biblioteca OCR para extraer texto de imágenes?

IronOCR garantiza alta precisión utilizando algoritmos avanzados de OCR, visión por computadora y modelos de aprendizaje automático, incluso en escenarios desafiantes.

¿Qué tipos de datos se pueden extraer de los recibos usando OCR?

IronOCR puede extraer datos como artículos de línea, precios, montos de impuestos, montos totales y otros detalles del recibo.

¿Cómo puede la automatización del análisis de recibos mejorar los procesos empresariales?

La automatización del análisis de recibos con IronOCR mejora los procesos empresariales al reducir la entrada manual, permitir la recopilación precisa de datos y habilitar la toma de decisiones basada en datos.

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