USO DE IRONOCR

Procesamiento de facturas con OCR en C# (Tutorial para desarrolladores)

Publicado en 14 de enero, 2025
Compartir:

Introducción

El procesamiento de datos de facturas se refiere a recibir, gestionar y validar facturas de proveedores o vendedores y asegurar que los pagos se realicen correctamente y a tiempo. Implica pasos diseñados para garantizar la precisión, el cumplimiento y la eficiencia en el manejo de transacciones comerciales para evitar facturas en papel. El procesamiento automatizado de facturas puede reducir significativamente los errores de entrada de datos manuales y mejorar la eficiencia. IronOCR es un potente programa de reconocimiento óptico de caracteres(OCR)biblioteca de software que se puede usar para extraer datos o texto de facturas a partir de un archivo digital, lo que la convierte en una excelente herramienta para automatizar el procesamiento OCR de facturas en aplicaciones C#.

Cómo procesar datos de facturas utilizando software de OCR como IronOCR

  1. Cree un proyecto de Visual Studio.

  2. Instala la biblioteca IronOCR C#.

  3. Imagen de muestra de factura de entrada.

  4. Utilice Tesseract y extraiga datos de la imagen del recibo.

  5. Leer solo una región de una imagen.

Reconocimiento óptico de caracteres (OCR)

El reconocimiento óptico de caracteres es una tecnología que permite reconocer y convertir diferentes tipos de documentos, PDFs o imágenes de texto en datos editables y buscables. La tecnología OCR procesa imágenes de texto y extrae los caracteres, haciéndolos legibles por máquina. Los sistemas avanzados de software de OCR para facturas ayudan en las herramientas de gestión financiera y la automatización de facturas.

Puntos clave sobre OCR

  • Funcionalidad: El software OCR escanea imágenes o texto(por ejemplo, fotos o documentos escaneados)y convierte los caracteres en texto digital que se puede editar, buscar y almacenar.
  • Aplicaciones: El OCR se utiliza ampliamente en diversas industrias para tareas como la digitalización de documentos impresos, el procesamiento de facturas, la extracción de datos de formularios y el reconocimiento automático de matrículas.(ANPR), flujo de trabajo de cuentas por pagar y escaneo de libros.
  • Tecnología: OCR utiliza algoritmos para identificar patrones de luz y oscuridad con el fin de interpretar caracteres. Los sistemas modernos de OCR también emplean el aprendizaje automático y la inteligencia artificial para mejorar la precisión, especialmente con texto manuscrito.
  • Beneficios: El OCR mejora la productividad al automatizar la entrada de datos, reducir errores y permitir una búsqueda y recuperación de datos más fácil. También es compatible con el archivo de documentos y ayuda a las empresas a gestionar flujos de trabajo sin papel.

    La tecnología OCR ha evolucionado significativamente, haciéndola muy precisa y útil para el procesamiento de documentos y la extracción de datos de facturas en muchos formatos diferentes de facturas, reduciendo la entrada manual de datos, eliminando el procesamiento manual de facturas y mejorando la seguridad de los datos.

IronOCR

IronOCR es un potente reconocimiento óptico de caracteres(OCR)biblioteca para .NET (C#)que permite a los desarrolladores extraer texto de imágenes, PDFs y otros formatos de documentos, desarrollar software OCR para facturas e implementar un flujo de trabajo de cuentas por pagar. Proporciona una API fácil de usar para integrar capacidades de OCR en el sistema de cuentas por pagar o el sistema de contabilidad.

Características principales de IronOCR

  • Extracción de Texto: Puede extraer texto de varios formatos de imagen(PNG, JPG, TIFF, etc.)y PDF, incluidos los PDF de varias páginas para software de contabilidad.
  • Precisión: IronOCR utiliza algoritmos avanzados y técnicas de aprendizaje automático para ofrecer una alta precisión en el reconocimiento de texto, incluso para imágenes ruidosas o de baja calidad en procesos de cuentas por pagar y descuentos por pagos anticipados.
  • Soporte de idiomas: La biblioteca admite varios idiomas, incluidos inglés, español, francés y otros, lo que ayuda a reconocer texto en diferentes idiomas.
  • Facilidad de uso: IronOCR ofrece una API sencilla que permite a los desarrolladores integrar rápidamente la funcionalidad OCR en sus aplicaciones sin requerir un profundo conocimiento técnico de las técnicas OCR.
  • Reconocimiento de códigos de barras y códigos QR: Además del reconocimiento de texto estándar, IronOCR también puede detectar y extraer códigos de barras y códigos QR de imágenes.
  • Soporte de PDF: Puede leer y extraer texto de PDFs escaneados, lo que lo hace útil para procesar facturas, recibos y otros documentos comerciales.
  • Personalización: La biblioteca permite la personalización de la configuración de OCR según necesidades específicas, como ajustar la precisión o manejar diferentes resoluciones de imagen.

Requisitos previos

Antes de comenzar, asegúrese de tener lo siguiente:

  • Visual Studio está instalado en su equipo.
  • Conocimientos básicos de programación en C#.
  • Paquete NuGet de IronOCR instalado en su proyecto.

Paso 1: Crear un proyecto de Visual Studio

Abra Visual Studio y haga clic en Crear un nuevo proyecto.

Procesamiento de Facturas OCR en C# (Tutorial para Desarrolladores): Figura 1 - Nuevo Proyecto

Seleccione Aplicación de Consola en las opciones.

Procesamiento de facturas OCR en C# (Tutorial para desarrolladores): Figura 2 - Aplicación de consola

Proporcione el nombre y la ruta del proyecto.

Procesamiento de facturas OCR en C# (Tutorial para desarrolladores): Figura 3 - Configuración del proyecto

Seleccione el tipo de versión de .NET.

Procesamiento de facturas OCR en C# (Tutorial para desarrolladores): Figura 4 - Marco de trabajo objetivo

Paso 2: Instalar la biblioteca IronOCR C

En su proyecto en Visual Studio, vaya a Herramientas > Administrador de paquetes NuGet > Administrar paquetes NuGet para la solución. Haz clic en la pestaña Explorar y busca IronOCR. Seleccione IronOCR y haga clic en Instalar.

Procesamiento de facturas con OCR en C# (Tutorial para desarrolladores): Figura 5 - IronOCR

Otra opción es utilizar la consola y el siguiente comando.

dotnet add package IronOcr --version 2024.12.2
dotnet add package IronOcr --version 2024.12.2
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronOcr --version 2024.12.2
VB   C#

Paso 3: Imagen de factura de entrada de muestra

Imagen de factura digital de muestra con el número de factura.

Procesamiento de facturas con OCR en C# (Tutorial para desarrolladores): Figura 6 - Ejemplo de entrada

Paso 4: Utiliza Tesseract y extrae los datos de la imagen del recibo.

Ahora utiliza el siguiente código para extraer datos de una factura para el procesamiento de facturas mediante OCR.

using IronOcr;
License.LicenseKey = "Your License";
string filePath = "sample1.jpg"; // image for invoice OCR
// Create an instance of IronTesseract
var ocr = new IronTesseract();
// Load the image or PDF file
using (var ocrInput = new OcrInput())
{
    ocrInput.LoadImage(filePath);
    // Optionally apply filters if needed 
    ocrInput.Deskew();
    // ocrInput.DeNoise(); 
    // Read the text from the image or PDF
    var ocrResult = ocr.Read(ocrInput);
    // Output the extracted text
    Console.WriteLine("Extracted Text:");
    Console.WriteLine(ocrResult.Text);
    // next steps are to process data and use the extracted and validated data with invoice date
}
using IronOcr;
License.LicenseKey = "Your License";
string filePath = "sample1.jpg"; // image for invoice OCR
// Create an instance of IronTesseract
var ocr = new IronTesseract();
// Load the image or PDF file
using (var ocrInput = new OcrInput())
{
    ocrInput.LoadImage(filePath);
    // Optionally apply filters if needed 
    ocrInput.Deskew();
    // ocrInput.DeNoise(); 
    // Read the text from the image or PDF
    var ocrResult = ocr.Read(ocrInput);
    // Output the extracted text
    Console.WriteLine("Extracted Text:");
    Console.WriteLine(ocrResult.Text);
    // next steps are to process data and use the extracted and validated data with invoice date
}
Imports IronOcr
License.LicenseKey = "Your License"
Dim filePath As String = "sample1.jpg" ' image for invoice OCR
' Create an instance of IronTesseract
Dim ocr = New IronTesseract()
' Load the image or PDF file
Using ocrInput As New OcrInput()
	ocrInput.LoadImage(filePath)
	' Optionally apply filters if needed 
	ocrInput.Deskew()
	' ocrInput.DeNoise(); 
	' Read the text from the image or PDF
	Dim ocrResult = ocr.Read(ocrInput)
	' Output the extracted text
	Console.WriteLine("Extracted Text:")
	Console.WriteLine(ocrResult.Text)
	' next steps are to process data and use the extracted and validated data with invoice date
End Using
VB   C#

Código Explicación

El código proporcionado demuestra cómo usar la biblioteca IronOCR en C# para extraer texto de una imagen.(por ejemplo, una factura)usando OCR(Reconocimiento óptico de caracteres). Aquí está una explicación de cada parte del código sin el código real:

  1. Configuración de la Clave de Licencia:

    El código comienza configurando la clave de licencia para IronOCR. Esta clave es necesaria para utilizar la funcionalidad completa de la biblioteca. Si tienes una licencia válida, reemplazas "Your License" con tu clave de licencia real.

  2. Especificando el Archivo de Entrada:

    La variable filePath contiene la ubicación de la imagen que contiene la factura.(en este caso, "sample1.jpg"). Este es el archivo que se procesará para la extracción de texto.

  3. Creando una instancia de OCR:

    Se crea una instancia de IronTesseract. IronTesseract es la clase responsable de realizar la operación OCR en los datos de entrada.(imagen o PDF).

  4. Cargando la imagen:

    Luego, el código crea un objeto OcrInput, que se utiliza para cargar la imagen.(en este caso, un archivo JPG especificado por filePath). El método LoadImage se utiliza para leer el archivo de imagen y prepararlo para OCR.

  5. Aplicar filtros de imagen:

    El código contiene un paso de filtro donde se aplican métodos opcionales de procesamiento de imágenes, como Deskew.(corrección de imágenes sesgadas)y DeNoise(eliminando el ruido de la imagen), se puede aplicar para mejorar la precisión del OCR. En este caso, solo el método Deskew está activo.

  6. Realizando OCR:

    • El ocr.Read()El método se utiliza para extraer texto de la imagen cargada. El objeto ocrInput, que contiene la imagen, se pasa a este método, y devuelve un objeto OcrResult que contiene el texto extraído.
  7. Visualización del texto extraído:

    • El texto extraído se imprime luego en la consola. Este texto es lo que IronOCR ha reconocido de la imagen y puede ser utilizado para un procesamiento posterior.

Salida

Procesamiento de facturas OCR en C# (Tutorial para desarrolladores): Figura 7 - Salida OCR con número de factura

Paso 5: Leer solo una región de una imagen

Para mejorar la eficiencia, se puede utilizar solo una parte de la imagen para la extracción.

using IronOcr;
using IronSoftware.Drawing;
License.LicenseKey = "Your Key";
string filePath = "sample1.jpg"; 
// Create an instance of IronTesseract
var ocr = new IronTesseract();
// Load the image or PDF file
using (var ocrInput = new OcrInput())
{
    var ContentArea = new Rectangle(x: 0, y: 0, width: 1000, height: 250);
    ocrInput.LoadImage(filePath, ContentArea);
    // Optionally apply filters if needed 
    ocrInput.Deskew();
    // ocrInput.DeNoise(); 
    // Read the text from the image or PDF
    var ocrResult = ocr.Read(ocrInput);
    // Output the extracted text
    Console.WriteLine("Extracted Text:");
    Console.WriteLine(ocrResult.Text);
}
using IronOcr;
using IronSoftware.Drawing;
License.LicenseKey = "Your Key";
string filePath = "sample1.jpg"; 
// Create an instance of IronTesseract
var ocr = new IronTesseract();
// Load the image or PDF file
using (var ocrInput = new OcrInput())
{
    var ContentArea = new Rectangle(x: 0, y: 0, width: 1000, height: 250);
    ocrInput.LoadImage(filePath, ContentArea);
    // Optionally apply filters if needed 
    ocrInput.Deskew();
    // ocrInput.DeNoise(); 
    // Read the text from the image or PDF
    var ocrResult = ocr.Read(ocrInput);
    // Output the extracted text
    Console.WriteLine("Extracted Text:");
    Console.WriteLine(ocrResult.Text);
}
Imports IronOcr
Imports IronSoftware.Drawing
License.LicenseKey = "Your Key"
Dim filePath As String = "sample1.jpg"
' Create an instance of IronTesseract
Dim ocr = New IronTesseract()
' Load the image or PDF file
Using ocrInput As New OcrInput()
	Dim ContentArea = New Rectangle(x:= 0, y:= 0, width:= 1000, height:= 250)
	ocrInput.LoadImage(filePath, ContentArea)
	' Optionally apply filters if needed 
	ocrInput.Deskew()
	' ocrInput.DeNoise(); 
	' Read the text from the image or PDF
	Dim ocrResult = ocr.Read(ocrInput)
	' Output the extracted text
	Console.WriteLine("Extracted Text:")
	Console.WriteLine(ocrResult.Text)
End Using
VB   C#

Código Explicación

Este código extrae texto de una región específica de una imagen utilizando IronOCR, y opcionalmente aplica filtros como la corrección de inclinación para mejorar la precisión. El texto extraído se muestra y está listo para su uso posterior.

1. Configuración de Licencia:

La primera parte del código consiste en establecer la clave de licencia para IronOCR. Esto es necesario para usar la funcionalidad de OCR en la biblioteca. La clave de licencia debe ser reemplazada con la clave actual que obtenga de IronOCR, lo que le permitirá acceder a todas las funciones de la biblioteca.

2. Definir la ruta del archivo de imagen:

Se especifica la ruta de archivo de la imagen que desea procesar. Esta imagen(en este caso, un archivo JPG)contiene el documento o contenido del cual el OCR extraerá texto. La ruta puede apuntar a un archivo de imagen en el sistema local u otro almacenamiento accesible.

3. Creación de una instancia OCR:

Se crea una instancia de la clase IronTesseract. Este objeto es el motor central que realizará el reconocimiento óptico de caracteres en la imagen.

4. Definiendo el Área a Procesar:

Un rectángulo(área de interés)está definido dentro de la imagen. Este rectángulo especifica la parte de la imagen en la que se centrará el motor OCR. En este ejemplo, el rectángulo comienza en la esquina superior izquierda.(x=0, y=0)y tiene un ancho de 1000 píxeles y una altura de 250 píxeles. Este paso ayuda al proceso de OCR a enfocarse solo en la sección relevante de la imagen, mejorando la precisión y la velocidad.

5. Cargando la imagen:

La imagen se carga en el motor de OCR, pero solo el rectángulo definido(el área de contenido)se procesa. Esto le permite limitar el alcance del OCR a una parte específica de la imagen, lo cual es especialmente útil cuando la imagen contiene áreas irrelevantes, como fondos o logotipos, que no desea procesar.

6. Aplicación de filtros:

El código aplica opcionalmente un filtro de deskewing a la imagen. El enderezado es el proceso de rectificar una imagen si tiene algún giro o inclinación, mejorando la precisión del OCR. Otro filtro, denoise, está disponible pero está comentado. Si está activado, eliminaría el ruido(marcas no deseadas)de la imagen, lo que podría mejorar aún más la precisión del OCR.

7. Extracción del Texto:

El motor OCR lee la imagen(o el área especificada de la misma)y extrae cualquier texto que reconozca. El resultado se almacena en un objeto que contiene el texto reconocido.

8. Generar el Texto Extraído:

Finalmente, el texto extraído se imprime en la consola. Este texto es el resultado del proceso OCR y puede ser procesado, validado o utilizado en aplicaciones como la entrada de datos o la gestión de documentos.

Salida

Procesamiento de facturas con OCR en C# (Tutorial para desarrolladores): Figura 8 - Salida extraída

Licencia (prueba disponible)

IronOCR requiere una clave para extraer datos de las facturas. Obtenga su clave de prueba para desarrolladores desde el página de licencias.

using IronOcr;
License.LicenseKey = "Your Key";
using IronOcr;
License.LicenseKey = "Your Key";
Imports IronOcr
License.LicenseKey = "Your Key"
VB   C#

Conclusión

Este artículo proporciona un ejemplo básico de cómo comenzar con IronOCR para el procesamiento de facturas. Puede personalizar y expandir este código para ajustarlo a sus requisitos específicos.

IronOCR ofrece una solución eficiente y fácil de integrar para extraer texto de imágenes y PDFs, lo que lo hace ideal para el procesamiento de facturas. Al utilizar IronOCR en combinación con la manipulación de cadenas de C# o expresiones regulares, puede procesar y extraer rápidamente datos importantes de las facturas.

Este es un ejemplo básico de procesamiento de facturas, y con configuraciones más avanzadas(como el reconocimiento de idioma, procesamiento de PDF de múltiples páginas, etc.), puedes ajustar los resultados de OCR para mejorar la precisión para tu caso de uso específico.

La API de IronOCR es flexible y puede usarse para una amplia variedad de tareas de OCR más allá del procesamiento de facturas, incluyendo el escaneo de recibos, la conversión de documentos y la automatización de la entrada de datos.

SIGUIENTE >
Tutorial de Desarrollador: OCR de Recibos de Supermercado en C#