IRONSOFTWAREHOME
USANDO IRONOCR

Escáner de Recibos OCR en C# con TicketBAI, AEAT y LOPDGDD | IronOCR España

Kannaopat Udonpant
Kannapat Udonpant
Updated: 21 de abril de 2026

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.

En España, el escaneado de recibos adquiere una dimensión regulatoria adicional. Los sistemas TicketBAI —implantados en el País Vasco para garantizar la trazabilidad de las operaciones B2C— exigen que los tickets emitidos incluyan un código QR y un identificador único. Un escáner OCR debe ser capaz de extraer estos campos específicos, además del NIF/CIF del emisor, la fecha de operación y el importe con IVA desglosado. La Agencia Estatal de Administración Tributaria (AEAT) requiere que los datos de recibos B2B se integren en el sistema SII (Suministro Inmediato de Información) para determinados contribuyentes. Asimismo, la LOPDGDD establece que el procesamiento OCR de recibos que contengan datos personales de clientes debe limitarse a los campos estrictamente necesarios para la finalidad fiscal (principio de minimización de datos). IronOCR permite implementar todas estas restricciones mediante su funcionalidad de extracción por regiones y su procesamiento completamente local. ¡Comencemos!

How To Create an OCR Receipt Scanner In C#

  1. Crea un proyecto de consola en C# en Visual Studio.
  2. Instala la biblioteca OCR utilizando el Administrador de Paquetes NuGet.
  3. Cargue el recibo en el programa utilizando el método OcrInput.
  4. Extraiga el texto utilizando 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 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 un recibo llamado Sample_Receipt.jpg, que utilizaremos para probar nuestra implementación de OCR.

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

Paso 1: Configuración del proyecto

Abrir Visual Studio: Busca el icono de Visual Studio en el escritorio o en el menú de aplicaciones y haz doble clic en él para abrir el programa.

Crear un nuevo proyecto: Una vez abierto Visual Studio, aparecerá 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.

Selecciona el tipo de proyecto: En la ventana "Crear un nuevo proyecto", verás una variedad de plantillas de proyecto. 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.

Configurar su nuevo proyecto: Ahora verá una pantalla titulada "Configurar su nuevo proyecto".

  • En el campo "Nombre del proyecto", introduce OCRReceiptScanner como 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 con OCR en C#: Figura 2 - Instalación de IronOCR a través del gestor de paquetes NuGet

  7. 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:

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

using IronOcr;
using System;

Ajustes de configuración: Si hay algún ajuste de configuración, como una clave de API o una clave de licencia, asegúrate de incluirlo. 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

Paso 4: Lectura del recibo

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

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

string pdfFilePath = "Sample_Receipt.jpg";

Bloque Try-Catch: Implementa la gestión 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}");
}

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();

Al crear una instancia de IronTesseract, estamos esencialmente configurando nuestra herramienta de 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
}

En este segmento, se utiliza OcrInput para especificar el archivo que queremos 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: "Este es el archivo que quiero que leas". La instrucción using es una construcción especial de C# que garantiza que los recursos utilizados por OcrInput (como los manejadores de archivos) se liberen correctamente una vez finalizado el procesamiento. 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);

El método Read tomará la ruta del archivo de entrada como parámetro. Esta línea iniciará el escaneo del recibo. Realizará 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);

La variable result contiene el resultado del proceso de OCR y result.Text contiene el texto real extraído del recibo. La función Console.WriteLine 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}");
        }
    }
}

Paso 6: Ejecutar su aplicación

  1. Compilar el proyecto: Haga clic en el menú "Compilar" y, a continuación, seleccione "Compilar solución".
  2. Ejecutar el proyecto: Pulsa F5 o haz clic en el botón "Inicio" 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 con OCR en C#: Figura 3 - Texto generado a partir 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.

Adaptación al contexto fiscal español

Al adaptar este escáner para el mercado español, considera los siguientes puntos clave:

Extracción de CIF/NIF: los recibos españoles siempre deben incluir el NIF o CIF del emisor. Añade una expresión regular al método de extracción para capturar el patrón [A-Z0-9]\d{7}[A-Z0-9] que identifica estos identificadores fiscales.

Cumplimiento TicketBAI: en el País Vasco, el código QR de TicketBAI debe leerse mediante la funcionalidad de detección de códigos de barras de IronOCR (_ocr.Configuration.ReadBarCodes = true). El valor extraído debe almacenarse junto con los demás campos del ticket para garantizar la trazabilidad exigida por la normativa.

Integración SII para recibos B2B: si tu aplicación procesa facturas de proveedores (no solo tickets de consumidor), los datos extraídos —base imponible, cuota de IVA, NIF del proveedor, fecha de operación— deben reportarse al SII de la AEAT en un plazo de cuatro días. IronOCR proporciona la velocidad de extracción necesaria para mantener este plazo incluso en entornos de alto volumen.

LOPDGDD y datos de clientes: cuando los recibos contienen datos personales del comprador (nombre, dirección de envío), la LOPDGDD exige que estos datos no se almacenen más allá de lo necesario para la finalidad fiscal. Configura el pipeline para extraer únicamente los campos imprescindibles y elimina el escaneo en bruto una vez completada la extracción.

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, lo que permite a los usuarios explorar y evaluar sus capacidades sin coste inicial. Para aquellos que deseen integrar y aprovechar toda la gama de funciones en un entorno profesional, las licencias comienzan en $999, lo que proporciona una solución integral para las necesidades de escaneo de recibos y extracción de datos mediante OCR.

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!

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta