USO DE IRONOCR

API de escaneado de recibos (Tutorial para desarrolladores)

Actualizado 22 de julio, 2023
Compartir:

Una API de escaneado de recibos extrae datos clave de los recibos mediante tecnología OCR avanzada. Agiliza el proceso de introducción de datos eliminando los errores manuales y mejorando la productividad. La API, versátil y precisa, admite varios idiomas, monedas y formatos. Al automatizar el análisis de los recibos, las empresas pueden conocer mejor sus pautas de gasto y tomar decisiones basadas en datos. Este artículo mostrará cómo utilizar la biblioteca OCR de C#, IronOCR para extraer información importante de un recibo.

IronOCR

IronOCR es una versátil biblioteca y API de OCR 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 PDF. Con sus avanzados algoritmos de OCR, visión por ordenador y modelos de aprendizaje automático, IronOCR garantiza una gran precisión y fiabilidad, incluso en situaciones difíciles. La biblioteca admite varios idiomas y estilos de fuente, lo que la hace adecuada para aplicaciones globales. Al incorporar IronOCR con capacidades de modelos de aprendizaje automático a sus aplicaciones, los desarrolladores pueden automatizar fácilmente la introducción de datos, el análisis de textos y otras tareas, mejorando la productividad y la eficiencia.

Con IronOCR, los desarrolladores pueden obtener sin esfuerzo texto de diversas fuentes, como documentos, fotografías, capturas de pantalla e incluso imágenes de cámaras en directo como respuestas JSON. Mediante la utilización de sofisticados algoritmos y modelos de aprendizaje automático, IronOCR analiza los datos de la imagen reconoce caracteres individuales y los convierte en texto legible por máquina. Este texto extraído puede utilizarse para diversos fines, como la introducción de datos, la recuperación de información, el análisis de textos y la automatización de tareas manuales.

Requisitos previos

Antes de empezar a trabajar con IronOCR, es necesario cumplir algunos requisitos previos. Estos requisitos previos incluyen:

  1. Asegúrese de que dispone de un entorno de desarrollo adecuado en su ordenador. Esto suele implicar disponer de un Entorno de Desarrollo Integrado (IDE) como Visual Studio instalado.
  2. Es importante tener conocimientos básicos del lenguaje de programación C#. Esto le permitirá comprender y modificar eficazmente los ejemplos de código proporcionados en el artículo.
  3. Necesitarás tener la librería IronOCR instalada en tu proyecto. Para ello, se puede utilizar el gestor de paquetes NuGet dentro de Visual Studio o a través de la interfaz de línea de comandos.

    Si se asegura de que se cumplen estos requisitos previos, estará listo para sumergirse en el proceso de trabajar con IronOCR.

Creación de un nuevo proyecto de Visual Studio

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

Abra Visual Studio y vaya a Archivos, luego pase el ratón por Nuevo y haga clic en Proyecto.

API de escaneado de recibos (Tutorial para desarrolladores), Figura 1: Nueva imagen de proyecto

Nueva imagen del proyecto

En la nueva ventana, seleccione Aplicación de consola y haga clic en Siguiente.

API de escaneado 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 la ubicación y haga clic en Siguiente.

API de escaneado de recibos (Tutorial para desarrolladores), Figura 3: Configuración del proyecto

Configuración del proyecto

Por último, indique el Marco de destino y haga clic en Crear.

API de escaneado de recibos (Tutorial para desarrolladores), Figura 4: Marco de destino

Marco objetivo

Ahora que su nuevo proyecto de Visual Studio está creado, vamos a instalar el IronOCR.

Instalación de IronOCR

Existen varios métodos para descargar e instalar la biblioteca IronOCR. Sin embargo, he aquí los dos enfoques más sencillos.

  1. Uso del gestor de paquetes NuGet de Visual Studio
  2. Uso de la línea de comandos de Visual Studio

Uso del gestor de paquetes NuGet de Visual Studio

IronOCR puede incluirse en un proyecto C# utilizando el gestor de paquetes NuGet de Visual Studio.

Navegue hasta la interfaz gráfica de usuario de NuGet Package Manager seleccionando Herramientas > NuGet Package Manager > Administrar paquetes NuGet para la solución.

API de escaneo de recibos (Tutorial para desarrolladores), Figura 5: Gestor de paquetes NuGet

Gestor de paquetes NuGet

A continuación, aparecerá una nueva ventana. Busque IronOCR e instale el paquete en el proyecto.

API de escaneado de recibos (tutorial para desarrolladores), Figura 6: IronOCR

IronOCR

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

Uso de la línea de comandos de Visual Studio

  1. En Visual Studio, vaya a Herramientas > Administrador de paquetes NuGet > Consola del administrador de paquetes.
  2. Introduzca la siguiente línea en la pestaña Consola del gestor de paquetes:
    :ProductInstall

API de escaneado de recibos (Tutorial para desarrolladores), Figura 7: Consola del gestor de paquetes

    **Consola del Administrador de Paquetes**

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

Extracción de datos mediante la API OCR de recibos

Extraer datos de imágenes de recibos utilizando IronOCR y guardarlos en forma de datos estructurados es un salvavidas para la mayoría de los desarrolladores. Con IronOCR, puede conseguirlo con unas pocas líneas de código. Con él podrá extraer partidas, precios, importe de impuestos, importe total y mucho más con diferentes tipos de documentos.

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

var ocr = new IronTesseract();
using (var input = new OcrInput(@"r2.png"))
{
    var result = ocr.Read(input);
    var descriptionPattern = @"\[([A-Z0-9_]+)]\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
    var pricePattern = @"\$\d+(\.\d{2})?";
    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');
    var descriptionMatch = Regex.Match(lines, descriptionPattern);
    if (descriptionMatch.Success)
    {
        var DescriptionValue = descriptionMatch.Groups [2].Value.Trim();
        descriptions.Add(DescriptionValue);
    }
    Console.WriteLine("Description: " + descriptions [i]);
    Console.WriteLine("Quantity: 1.00 Units");
    Console.WriteLine("Unit Price: $" + unitPrices [i]);
    taxes.Add(cost [i] * 0.15m); //  Calcular impuestos (15%)
    Console.WriteLine("Taxes: $" + taxes [i]);
    amounts.Add(unitPrices [i] + taxes [i]);
    Console.WriteLine("Amount: $" + amounts [i]);
    Console.WriteLine("-----------------------");
}
using IronOcr;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"r2.png"))
{
    var result = ocr.Read(input);
    var descriptionPattern = @"\[([A-Z0-9_]+)]\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
    var pricePattern = @"\$\d+(\.\d{2})?";
    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');
    var descriptionMatch = Regex.Match(lines, descriptionPattern);
    if (descriptionMatch.Success)
    {
        var DescriptionValue = descriptionMatch.Groups [2].Value.Trim();
        descriptions.Add(DescriptionValue);
    }
    Console.WriteLine("Description: " + descriptions [i]);
    Console.WriteLine("Quantity: 1.00 Units");
    Console.WriteLine("Unit Price: $" + unitPrices [i]);
    taxes.Add(cost [i] * 0.15m); //  Calcular impuestos (15%)
    Console.WriteLine("Taxes: $" + taxes [i]);
    amounts.Add(unitPrices [i] + taxes [i]);
    Console.WriteLine("Amount: $" + amounts [i]);
    Console.WriteLine("-----------------------");
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System
Imports System.Collections.Generic
Imports System.Text.RegularExpressions

Private ocr = New IronTesseract()
Using input = New OcrInput("r2.png")
	Dim result = ocr.Read(input)
	Dim descriptionPattern = "\[([A-Z0-9_]+)]\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)"
	Dim pricePattern = "\$\d+(\.\d{2})?"
	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)
	Dim descriptionMatch = Regex.Match(lines, descriptionPattern)
	If descriptionMatch.Success Then
		Dim DescriptionValue = descriptionMatch.Groups (2).Value.Trim()
		descriptions.Add(DescriptionValue)
	End If
	Console.WriteLine("Description: " & descriptions (i))
	Console.WriteLine("Quantity: 1.00 Units")
	Console.WriteLine("Unit Price: $" & unitPrices (i))
	taxes.Add(cost (i) * 0.15D) '  Calcular impuestos (15%)
	Console.WriteLine("Taxes: $" & taxes (i))
	amounts.Add(unitPrices (i) + taxes (i))
	Console.WriteLine("Amount: $" & amounts (i))
	Console.WriteLine("-----------------------")
End Using
VB   C#

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

API de escaneado de recibos (Tutorial para desarrolladores), Figura 8: Salida

Salida

Extraer todo el recibo

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

using IronOcr;
using System;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"r3.png"))
{
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
using IronOcr;
using System;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"r3.png"))
{
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
Imports IronOcr
Imports System

Private ocr = New IronTesseract()
Using input = New OcrInput("r3.png")
	Dim result = ocr.Read(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

API de escaneado de recibos (Tutorial para desarrolladores), Figura 9: Salida de la API de escaneado de recibos

Escanear salida API de recepción

La API de escaneado de imágenes de recibos, como IronOCR, ofrece una potente solución de software para automatizar la extracción de datos de los recibos. Aprovechando la avanzada tecnología OCR, las empresas pueden extraer fácilmente información importante de las imágenes o escaneados de recibos, incluidos los nombres de los proveedores comerciales, las fechas de compra, las listas detalladas, los precios, los impuestos y los importes totales. Con soporte para varios idiomas, divisas, formatos de reciboy compatibilidad con códigos de barras Las empresas pueden agilizar sus procesos de gestión de recibos, ahorrar tiempo, conocer mejor los patrones de gasto y tomar decisiones basadas en datos. IronOCR, como biblioteca y API de OCR versátil, proporciona a los desarrolladores las herramientas que necesitan para extraer texto de diversas fuentes con precisión y eficacia, lo que permite automatizar tareas y mejorar la eficiencia general. Al cumplir los requisitos previos necesarios e integrar IronOCR en sus aplicaciones, los desarrolladores pueden desbloquear las ventajas del procesamiento de datos de recepción y mejorar sus flujos de trabajo.

Para más información sobre IronOCR, visite este enlace página de licencias. Para saber cómo utilizar la visión por ordenador para encontrar texto, visite este página sobre visión por computador. Para más tutoriales sobre el OCR de recibos, visite OCR C# tutorial.

< ANTERIOR
Automatización de OCR (Tutorial de OCR de matrículas en C#)
SIGUIENTE >
Los mejores OCR para el procesamiento de facturas (lista actualizada)

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

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