IRONSOFTWAREHOME
COMPARAR CON OTROS COMPONENTES

Barkoder SDK vs IronBarcode: escaneo con cámara móvil frente a cobertura completa de códigos de barras en .NET

Curtis Chau
Curtis Chau
Updated: 26 de abril de 2026

El SDK de Barkoder aparece en casi todas las comparativas de "mejores SDK de códigos de barras de 2026", junto con ZXing, Dynamsoft, Scandit e IronBarcode en las matrices comparativas. Los desarrolladores que evalúan soluciones de códigos de barras para proyectos .NET se topan con esto al principio de su investigación: leen sobre MatrixSight, el modo DeBlur, la detección de múltiples códigos de barras y la compatibilidad con DPM, y lo encuentran realmente convincente. Luego buscan NuGet. Cero resultados. Para los equipos en España que necesitan un generador de códigos de barras para cumplir con VeriFactu (Real Decreto 1007/2023), TicketBAI en el País Vasco o SEVeM para farmacia, la ausencia de un paquete .NET en Barkoder hace que esta evaluación termine antes de comenzar. El SDK de Barkoder no tiene paquete .NET , ni API de C#, ni una vía oficial para integrarse en un proyecto .NET . Esta comparación explica qué es Barkoder, qué lo hace fuerte en su ámbito nativo y cómo IronBarcode cubre los mismos requisitos para los desarrolladores .NET .

Comprensión del SDK de Barkoder

Barkoder es un SDK comercial para el escaneo de códigos de barras, basado en un núcleo de procesamiento C/C++ y envuelto en SDKs nativos para iOS y Android. Está dirigido a desarrolladores de aplicaciones móviles que necesitan escaneo de cámara en tiempo real, el tipo de escaneo que realiza un trabajador de almacén en un teléfono o un técnico de campo en una tableta. El modelo de distribución refleja ese objetivo en su totalidad.

El SDK se distribuye para iOS a través de CocoaPods con API de Swift y Objective-C, para Android a través de Maven con API de Kotlin y Java, y para dispositivos móviles híbridos a través de complementos oficiales para React Native, Flutter, Cordova y Capacitor. No existe ningún paquete NuGet . No hay enlaces para C#. No existe una ruta de acceso compatible a un proyecto .NET .

La empresa ofrece proyectos de integración con Xamarin y MAUI mantenidos por la comunidad, pero estos no son productos oficiales, no cuentan con el soporte de producción de Barkoder y no se actualizan junto con el SDK principal. Depender de una biblioteca de enlace de la comunidad para un flujo de trabajo crítico de códigos de barras en una aplicación .NET de producción representa un riesgo técnico significativo. Para cualquier implementación seria de .NET , no son una opción realista.

Características arquitectónicas clave del SDK de Barkoder:

  • Arquitectura Mobile-First: Diseñada exclusivamente para los sistemas de cámara de iOS y Android; Todo el procesamiento se realiza en el dispositivo a través de un núcleo C/C++.
  • No hay SDK de .NET : No existe ningún paquete NuGet ; La búsqueda de "barkoder" en NuGet no arroja resultados.
  • Sin generación de códigos de barras: Barkoder es un SDK de solo lectura; no tiene capacidad para producir o codificar códigos de barras
  • Sin procesamiento de PDF: El SDK no tiene capacidad para leer códigos de barras de documentos PDF, imágenes de sistemas de archivos ni flujos de trabajo de documentos del lado del servidor.
  • Sin implementación en servidor: El SDK no se puede ejecutar en ASP.NET Core, Azure Functions, contenedores Docker ni en ningún entorno de ejecución .NET del lado del servidor.
  • Enlace .NET exclusivo para la comunidad: El proyecto de enlace MAUI es experimental, expone solo un subconjunto del SDK y no cuenta con soporte para producción.

¿Cómo luce la arquitectura de Barkoder?

El núcleo C/C++ del SDK se encarga del procesamiento de imágenes. Las envolturas de iOS y Android exponen ese núcleo a través de API nativas de la plataforma. Ninguno de los siguientes se ejecuta en un contexto .NET - no hay using Barkoder; declaración en cualquier proyecto de C#:

// iOS — Swift only, no C# equivalent
let barkoderView = BarkoderView(frame: frame)
barkoderView.config = BarkoderConfig(licenseKey: "LICENSE_KEY") { config in
    config.decoder.decoderType = .code128
    config.decoder.deblurEnabled = true
}
barkoderView.startScanning { result in
    print(result.textualData ?? "No result")
}
Text
// Android — Kotlin only, no C# equivalent
val barkoderView = BarkoderView(context)
barkoderView.config = BarkoderConfig("LICENSE_KEY")
barkoderView.config.decoder.decoderType = DecoderType.Code128
barkoderView.config.decoder.deblurEnabled = true
barkoderView.startScanning { result ->
    println(result.textualData)
}
Text

Antes de descartar por completo a Barkoder, conviene reconocer sus puntos fuertes. Las características que le otorgan un lugar en las comparativas son sus capacidades reales. MatrixSight y el modo DeBlur ofrecen una tecnología patentada de recuperación de daños que permite leer códigos de barras que están físicamente dañados, mal impresos o capturados con poca luz. La detección de múltiples códigos de barras decodifica varios códigos de barras simultáneamente en un solo fotograma de la cámara, lo que permite a los trabajadores del almacén escanear estantes enteros a la vez. El escaneo DPM (Marcado Directo de Piezas) admite DataMatrix y otros formatos en configuraciones grabadas con láser y marcadas con micropuntos que la mayoría de las bibliotecas de propósito general no manejan bien. La compatibilidad con formatos de alta densidad incluye PDF417, azteca y otros formatos 2D con gran precisión en cámaras de dispositivos móviles.

Entendiendo IronBarcode

IronBarcode es una biblioteca nativa de .NET que cubre todo el flujo de trabajo de códigos de barras (lectura y generación) en cualquier entorno .NET . Es el equivalente funcional de las capacidades de Barkoder para la plataforma .NET , con características adicionales que solo tienen sentido en contextos de servidor y escritorio.

IronBarcode se instala a través de NuGet y se ejecuta completamente de forma local. Durante las operaciones con códigos de barras no se realizan llamadas de red. Funciona en entornos aislados, en Azure Functions, en contenedores Docker, en AWS Lambday en todos los entornos de ejecución de .NET, desde .NET Framework 4.6.2 hasta .NET 9. El modelo de API estática significa que no hay que administrar ninguna instancia de escáner, ni realizar un seguimiento del ciclo de vida, ni preocuparse por la seguridad de los subprocesos en caso de llamadas simultáneas.

Características clave de IronBarcode:

  • Cobertura completa de .NET : Admite .NET Framework 4.6.2+, .NET 6, 7, 8 y 9; Funciona en Windows, Linux, macOS, Docker, Azure y AWS.
  • Lectura y generación: Cubre tanto la lectura de códigos de barras desde archivos, flujos de datos y PDF como la generación de códigos de barras en más de 50 formatos.
  • Diseño estático de la API: BarcodeReader.Read() y BarcodeWriter.CreateBarcode() son llamadas estáticas sin instancias de estado que gestionar
  • Corrección de errores mediante aprendizaje automático: El sistema de preprocesamiento de imágenes basado en aprendizaje automático gestiona códigos de barras dañados, degradados y de baja calidad.
  • Compatibilidad nativa con PDF: lee códigos de barras directamente de documentos PDF sin extracción de imágenes intermedia.
  • Integración completa con el ecosistema .NET : compatible con la inyección de dependencias, async/await, middleware y patrones de alojamiento de ASP.NET Core.

Comparación de características

La siguiente tabla destaca las diferencias fundamentales entre SDK de Barkoder e IronBarcode:

CaracterísticaSDK de BarkoderIronBarcode
Soporte .NET / C#NingunoCompleto: todos los entornos de ejecución de .NET
Paquete NuGetNingunoSí - IronBarcode
Lectura de códigos de barrasSí, cámara del móvilSí, archivos, transmisiones, PDF.
Generación de códigos de barrasNingunoCompleto: más de 50 formatos
Procesamiento de PDFNingunoNativo
Implementación del lado del servidorNingunoCompleto: ASP.NET Core, Azure, Lambda, Docker
PreciosLicencias del SDK móvilDesde $999 pago único perpetuo

Comparación detallada de características

CaracterísticaSDK de BarkoderIronBarcode
Lectura
Recuperación de códigos de barras dañadosMatrixSight / DeBlurCorrección de errores ML, ReadingSpeed.ExtremeDetail
Detección de múltiples códigos de barrasSí, encuadre de la cámaraExpectMultipleBarcodes = true
Soporte para DataMatrix / DPMSí - BarcodeEncoding.DataMatrix
Lectura de código QR
PDF417
azteca
Código128, Código39, EANSí, más de 50 formatos
Detección de formato automático
Generación
Generación de códigos de barrasNingunoCompleto — todos los formatos
Generación de código QRNingunoQRCodeWriter.CreateQrCode()
Logotipo/marca en el código QRNingunoAddBrandLogo()
Plataforma
.NET / C#NingunoCompleto
iOS (nativo)Sí (principal)A través de .NET MAUI
Android (nativo)Sí (principal)A través de .NET MAUI
Windows / Linux / macOSNingunoCompleto
Docker / contenedoresNingunoCompleto
Funciones AzureNingunoCompleto
AWS LambdaNingunoCompleto
Aislado de la red / sin conexiónSí (en el dispositivo)Sí (totalmente local)
Diseño de API
Compatibilidad con Async/awaitN/ACompleto
Inyección de dependenciasNingunoIntegración completa de .NET DI
Entrada de documento PDFNingunoBarcodeReader.Read("doc.pdf")
Licencias
Modelo de licenciaLicencias del SDK móvilCompra única y perpetua
Precio (de entrada)Contacto de ventasDesde $999 (Lite)

Modelo de implementación de .NET

La diferencia fundamental entre SDK de Barkoder e IronBarcode no radica en una característica, sino en la disponibilidad. El SDK de Barkoder no existe en el ecosistema .NET .

Enfoque del SDK de Barkoder

La lista de plataformas de Barkoder es explícita: iOS Nativo(Swift / Objective-C), Android Nativo(Kotlin / Java), React Native, Flutter, Cordova, Capacitor. No se incluyen .NET, C#, .NET MAUI, Xamarin, Windows, Linux ni ASP.NET Core . La arquitectura del SDK se basa en un sistema de transmisión de vídeo en directo desde un dispositivo móvil. No incluye modo de entrada basado en archivos, API de transmisión, procesamiento por lotes ni modelo de ejecución en el servidor.

La ausencia de un SDK .NET no es un inconveniente menor, sino un obstáculo insalvable. No hay ningún paquete NuGet para instalar, ni una interfaz API asíncrona, ni integración de inyección de dependencias, ni compatibilidad con Azure o AWS Lambda, ni capacidad de procesamiento de PDF. La interfaz MAUI de la comunidad expone solo un subconjunto del SDK y no cuenta con soporte para entornos de producción.

Enfoque IronBarcode

IronBarcode se instala desde NuGet con un solo comando y se inicializa con una clave de licencia al arrancar:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

// Read a barcode from an image
var results = BarcodeReader.Read("scan.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}

La biblioteca se ejecuta completamente de forma local: sin llamadas de red, sin transmisión de datos, sin dependencias externas. Se integra con la inyección de dependencias de ASP.NET Core , admite async/await y se implementa en Docker, Funciones Azurey AWS Lambdasin modificaciones. Para una integración de ASP.NET Core de nivel de producción, consulte la documentación de IronBarcode .

Recuperación de códigos de barras dañados

La recuperación de códigos de barras dañados es la capacidad que con mayor frecuencia lleva a los desarrolladores a investigar Barkoder en primer lugar. Las funciones MatrixSight y el modo DeBlur de Barkoder se promocionan para escenarios de logística y fabricación donde las etiquetas físicas se desgastan, se mojan o se oscurecen parcialmente.

Enfoque del SDK de Barkoder

El modo DeBlur de Barkoder aplica un preprocesamiento de la imagen (mejora del contraste, nitidez, corrección de la rotación) antes del intento de decodificación. Esto funciona exclusivamente dentro del flujo de procesamiento de la cámara móvil. El modo se configura a nivel del SDK antes de que comience el escaneo, y la señal de la cámara se procesa de forma continua. No existe una ruta equivalente basada en archivos.

// iOS Swift — not usable from C#
barkoderView.config = BarkoderConfig(licenseKey: "LICENSE_KEY") { config in
    config.decoder.deblurEnabled = true
    config.decoder.decoderType = .code128
}
barkoderView.startScanning { result in
    print(result.textualData ?? "No result")
}
Text

Enfoque IronBarcode

IronBarcode aborda el mismo problema mediante ReadingSpeed.ExtremeDetail, que activa un proceso de análisis de imágenes de varias pasadas -aplicando la recuperación de daños basada en ML, la mejora del contraste, la nitidez y la corrección de la rotación- antes de intentar la descodificación. Esto funciona con cualquier archivo, flujo o matriz de bytes de entrada:

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.ExtremeDetail,
    ExpectMultipleBarcodes = false,
};

var results = BarcodeReader.Read("worn-shipping-label.png", options);

if (results.Any())
{
    Console.WriteLine($"Recovered: {results.First().Value}");
}
else
{
    Console.WriteLine("Could not decode — image quality too low");
}

ReadingSpeed.Balanced maneja la mayoría de los códigos de barras limpios o ligeramente dañados y es más rápido. Reserve ExtremeDetail para los casos en los que Balanced no funcione, ya que es más completo pero mucho más lento. Para obtener más información sobre cómo leer códigos de barras difíciles, consulte la documentación de lectura de IronBarcode .

Detección de múltiples códigos de barras

La detección de múltiples códigos de barras se realiza directamente entre las dos plataformas: Barkoder gestiona varios códigos en un fotograma de la cámara; IronBarcode admite múltiples códigos en un documento o archivo de imagen.

Enfoque del SDK de Barkoder

El modo multi-código de barras de Barkoder detecta y decodifica varios códigos de barras simultáneamente a partir de un único fotograma de la cámara. En un almacén, un trabajador sostiene un teléfono sobre un estante y recibe todos los valores de los códigos de barras a la vez. Esto se configura a nivel del SDK antes de que comience el escaneo:

// Android Kotlin — not usable from C#
barkoderView.config.decoder.multicodingEnabled = true
barkoderView.startScanning { results ->
    results.forEach { result ->
        println("${result.barcodeType}: ${result.textualData}")
    }
}
Text

Enfoque IronBarcode

En las aplicaciones del lado del servidor .NET , el escenario de múltiples códigos de barras normalmente implica un documento: una factura con un código de barras de seguimiento de envío y un código de barras de producto, o un manifiesto de envío con varios artículos por página. IronBarcode se encarga de esto con ExpectMultipleBarcodes = true, y la misma opción funciona de forma idéntica en imágenes y PDF:

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
};

// Works on images and PDFs — single method call
var results = BarcodeReader.Read("shipping-manifest.pdf", options);

foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}");
}

Sin extracción de páginas, sin múltiples solicitudes, sin sobrecarga de red por código de barras. El PDF se lee de forma nativa en una sola llamada. Para obtener más información sobre la lectura de múltiples códigos de barras y archivos PDF, consulte la documentación de IronBarcode .

Compatibilidad con formatos DataMatrix y de alta densidad

DataMatrix es fundamental para los casos de uso industriales y de DPM (Gestión de Datos Digitales), los formatos que Barkoder destaca para los sectores verticales de fabricación, atención médica y automoción.

Enfoque del SDK de Barkoder

Barkoder admite la lectura de DataMatrix con configuraciones DPM para marcas grabadas con láser y por micropuntos. El SDK también es compatible con PDF417, azteca y otros formatos 2D de alta densidad con gran precisión en cámaras móviles. Todo esto funciona dentro del sistema de procesamiento de la cámara en iOS o Android:

// iOS Swift — not usable from C#
barkoderView.config = BarkoderConfig(licenseKey: "LICENSE_KEY") { config in
    config.decoder.decoderType = .dataMatrix
}
barkoderView.startScanning { result in
    print(result.textualData ?? "No result")
}
Text

Barkoder no genera códigos de barras DataMatrix ni ningún otro formato de código de barras. Es un SDK de solo lectura.

Enfoque IronBarcode

IronBarcode lee y genera DataMatrix de forma nativa. En cuanto a la lectura, ReadingSpeed.ExtremeDetail se encarga del bajo contraste y los bordes rugosos típicos de las marcas DPM grabadas con láser. En cuanto a la generación, BarcodeWriter.CreateBarcode() produce DataMatrix para la creación de etiquetas de piezas:

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

// Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix)
    .SaveAsPng("part-label.png");

// Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500)
    .AddBrandLogo("company-logo.png")
    .SaveAsPng("branded-qr.png");

// Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
var results = BarcodeReader.Read("etched-part.png");

Para obtener una lista completa de los formatos compatibles y las opciones de generación, consulte la guía de generación de códigos de barras de IronBarcode .

Referencia de mapeo de API

Dado que no existe código C# de Barkoder del que tomar como referencia, esta tabla establece las equivalencias conceptuales entre lo que Barkoder hace en dispositivos móviles y cómo IronBarcode logra el mismo resultado en .NET:

Concepto BarkoderEquivalente de IronBarcode
Inicialización del SDK con clave de licenciaIronBarCode.License.LicenseKey = "YOUR-KEY"
DeblurEnabled = trueSpeed = ReadingSpeed.ExtremeDetail
MultipleScanningEnabled = trueExpectMultipleBarcodes = true
DecoderType = .dataMatrixBarcodeEncoding.DataMatrix (autodetectado en lectura)
startScanning(callback)BarcodeReader.Read("image.png") - resultado síncrono
result.textualDataresult.Value
result.symbologyresult.Format
Recuperación de daños de MatrixSightReadingSpeed.ExtremeDetail con preprocesamiento ML
Análisis del encuadre de la cámaraEntrada de archivo/flujo/matriz de bytes
Procesamiento en el dispositivoTotalmente local: sin llamadas de red.
Sin soporte para la generaciónBarcodeWriter.CreateBarcode() / QRCodeWriter.CreateQrCode()
Sin soporte para PDFBarcodeReader.Read("document.pdf") - nativo
Sin despliegue de servidorFunciona en ASP.NET Core, Docker, Azure Functions, Lambda

Cuando los equipos consideran migrar del SDK de Barkoder a IronBarcode

Requisitos del proyecto .NET

El escenario más común es sencillo: un desarrollador o un equipo está creando una aplicación .NET ( ASP.NET Core, un servicio de Windows, una herramienta de consola, una aplicación de escritorio) y se encuentra con Barkoder durante su investigación. Leen sobre MatrixSight, DeBlur y la detección de múltiples códigos de barras, encuentran las características atractivas y luego descubren que ninguna de ellas es accesible desde C#. La evaluación finaliza en NuGet. Los equipos que se encuentran en esta situación no están abandonando Barkoder; Están identificando la herramienta adecuada para su plataforma desde el principio. IronBarcode es la respuesta en .NET a los requisitos que Barkoder satisface en dispositivos móviles.

Flujos de trabajo de procesamiento de códigos de barras del lado del servidor

Algunos equipos crean inicialmente un prototipo de flujo de trabajo para el procesamiento de códigos de barras mediante una aplicación de escaneo móvil (como Barkoder u otro SDK móvil) y, posteriormente, necesitan replicar o ampliar dicho flujo de trabajo en el servidor. Algunos ejemplos comunes incluyen el procesamiento de imágenes de códigos de barras cargadas a través de una API, la lectura de códigos de barras de documentos PDF en un sistema de gestión documental o el procesamiento por lotes de archivos de etiquetas escaneadas. Ninguno de estos flujos de trabajo es posible con Barkoder, que no tiene un modelo de implementación del lado del servidor. IronBarcode gestiona todas estas funcionalidades con la misma API estática en ASP.NET Core, Azure Functions, Docker y AWS Lambda.

Requisitos para la generación de códigos de barras

Los equipos que desarrollan aplicaciones .NET para logística, inventario o cumplimiento normativo suelen descubrir que leer códigos de barras es solo la mitad del proceso. La generación de códigos de barras —imprimir etiquetas, insertar códigos QR en documentos, producir manifiestos de envío— es igualmente importante. Barkoder está diseñado para ser de solo lectura; No tiene capacidad de generación. Cuando el alcance de un proyecto se amplía más allá de la mera lectura, una biblioteca que cubra ambos lados del flujo de trabajo elimina la necesidad de integrar una segunda dependencia. IronBarcode ofrece funciones de lectura y generación en más de 50 formatos a través de una API consistente.

Procesamiento de documentos PDF

En las aplicaciones Enterprise .NET , los códigos de barras aparecen con frecuencia incrustados en documentos PDF: facturas, manifiestos de envío, historiales médicos, documentos de cumplimiento normativo. Barkoder no tiene ni idea de este flujo de trabajo; Está diseñado para la entrada de cámara en un dispositivo móvil. Los equipos que necesitan leer códigos de barras de documentos PDF entrantes, extraer datos de códigos de barras para la lógica empresarial o verificar la presencia de códigos de barras en archivos de documentos requieren una biblioteca con soporte nativo para PDF. IronBarcode lee los códigos de barras directamente de los archivos PDF sin necesidad de extraer imágenes intermedias.

Previsibilidad de precios y despliegue

El modelo de precios del SDK móvil de Barkoder se estructura en torno a la aplicación móvil y el modelo de distribución. Para los equipos que evalúan herramientas para un entorno .NET , ese modelo de precios es irrelevante, ya que el SDK no se ejecuta en .NET en absoluto. Cuando los equipos identifican IronBarcode como la herramienta adecuada para su plataforma, el modelo de precios es sencillo: una licencia perpetua de un solo pago sin cargos por solicitud ni límites de volumen, independientemente de la cantidad de códigos de barras que se procesen.

Consideraciones comunes sobre la migración

De la entrada de cámara móvil a la entrada basada en archivos

Los equipos que hayan implementado un prototipo de escaneo móvil basado en Barkoder y necesiten replicar esa funcionalidad en .NET descubrirán que el modelo de entrada cambia de fotogramas de la cámara a archivo, flujo de datos o matriz de bytes. IronBarcode acepta los mismos datos en múltiples formas: una cadena de ruta de archivo, un Stream, un byte[] o un System.Drawing.Image. Por lo demás, la lógica de procesamiento del código de barras es idéntica:

// All of these call the same underlying pipeline
var results1 = BarcodeReader.Read("scan.png");
var results2 = BarcodeReader.Read(imageStream);
var results3 = BarcodeReader.Read(imageBytes);

Compromiso entre velocidad y precisión

El modo DeBlur de Barkoder está siempre activo cuando se configura y se ejecuta dentro del bucle de la cámara del móvil. IronBarcode expone explícitamente la relación precisión-velocidad a través de ReadingSpeed. Para la mayoría de los archivos, ReadingSpeed.Balanced es apropiado. Para la entrada dañada o degradada que Balanced no puede decodificar, ReadingSpeed.ExtremeDetail aplica la tubería completa de ML multipase. Estructurar el procesamiento por lotes para utilizar Balanced por defecto y volver a ExtremeDetail sólo en caso de fallo es el enfoque recomendado para los flujos de trabajo sensibles al rendimiento.

Integración asíncrona en ASP.NET Core

El método BarcodeReader.Read() de IronBarcode es síncrono. En los puntos finales de ASP.NET Core que gestionan solicitudes concurrentes, envuelva la llamada en Task.Run() para evitar el bloqueo del hilo de solicitud:

var results = await Task.Run(() => BarcodeReader.Read(imageBytes, options));

Especificación de formato para rendimiento

IronBarcode detecta automáticamente los formatos de código de barras por defecto. En escenarios de alto rendimiento donde se conoce el formato esperado, especificar dicho formato reduce el tiempo de procesamiento al eliminar las pruebas de formato que no coincidirán. Utilice BarcodeReaderOptions.ExpectedBarcodeFormats para restringir la búsqueda cuando el formato se conozca de antemano.

Funcionalidades adicionales de IronBarcode

Más allá de las funcionalidades equivalentes a las de Barkoder para dispositivos móviles, IronBarcode ofrece capacidades que son relevantes específicamente para entornos de servidor y escritorio .NET :

  • Incorporación del logotipo del código QR: QRCodeWriter.CreateQrCode().AddBrandLogo() añade una imagen de marca en el centro de un código QR generado, un requisito común para los flujos de trabajo de marketing y empaquetado
  • Lectura de códigos de barras PDF : La entrada de PDF nativo significa que no se requiere extracción de imágenes intermedias; Los archivos PDF de varias páginas se escanean en una sola llamada.
  • Impresión de códigos de barras en PDF : IronBarcode puede generar códigos de barras e imprimirlos en documentos PDF existentes, lo que permite flujos de trabajo automatizados para el etiquetado y la gestión de documentos.
  • Lectura de imágenes a granel: BarcodeReader.ReadBulk() procesa múltiples imágenes simultáneamente para operaciones por lotes de alto rendimiento
  • Generación de códigos QR con estilo : colores, márgenes y niveles de corrección de errores personalizados para códigos QR.
  • Formatos GS1 y HIBC : Compatibilidad con estándares de códigos de barras para el sector sanitario y la cadena de suministro, más allá de los formatos estándar 1D y 2D.

Compatibilidad con .NET y preparación para el futuro

IronBarcode es compatible con .NET Framework 4.6.2 y todas las versiones modernas de .NET hasta .NET 9, y su desarrollo activo garantiza la compatibilidad con .NET 10, prevista para 2026. La biblioteca se ejecuta en Windows, Linux y macOS, y se ha probado con Docker, Funciones Azurey AWS Lambda. A medida que el ecosistema .NET continúa evolucionando hacia patrones multiplataforma y nativos de la nube, el modelo de ejecución totalmente local de IronBarcode, sin dependencia de la nube, sin gestión de claves API y sin latencia de red, se alinea con la dirección de la arquitectura de aplicaciones .NET moderna.

Cumplimiento normativo en España: generador de códigos de barras y QR

España ha implementado un conjunto de normativas que requieren generación de códigos QR y DataMatrix en el servidor .NET. Barkoder, al ser un SDK exclusivo para iOS y Android sin paquete .NET, no puede participar en ninguno de estos flujos de trabajo.

AEAT QR y VeriFactu (Real Decreto 1007/2023)

La Agencia Estatal de Administración Tributaria (AEAT) exige que cada factura VeriFactu incluya un código QR con payload estructurado enlazando a sede.agenciatributaria.gob.es. La factura debe mostrar la leyenda "VERI*FACTU". Esta generación se realiza en el servidor .NET al crear la factura; Barkoder no tiene API para este entorno.

TicketBAI — Bizkaia, Gipuzkoa y Araba

TicketBAI obliga a un código QR con payload XAdES en cada factura emitida en el País Vasco. El QR debe ser generado y firmado en el backend antes de ser incrustado en el documento PDF de la factura. No hay SDK Barkoder para .NET.

SEVeM — Farmacia (AEMPS)

El Sistema Español de Verificación de Medicamentos (SEVeM), bajo la Agencia Española de Medicamentos y Productos Sanitarios (AEMPS), requiere DataMatrix en envases de medicamentos. La generación de DataMatrix para etiquetado de producción es una operación de servidor. IronBarcode genera DataMatrix con BarcodeWriter.CreateBarcode(data, BarcodeEncoding.DataMatrix).

SILICIE — Sector vitivinícola (Agencia Tributaria)

El sistema SILICIE de la Agencia Tributaria gestiona la trazabilidad de bebidas alcohólicas y vinos. El etiquetado con códigos de barras para SILICIE es operación de servidor en el pipeline de producción, no de escaneo móvil.

Ejemplo práctico: QR VeriFactu y DataMatrix SEVeM con IronBarcode

// IronBarcode — generador de QR VeriFactu y DataMatrix SEVeM en .NET
// dotnet add package IronBarcode
using IronBarCode;

// QR para factura VeriFactu (AEAT, Real Decreto 1007/2023)
string payloadVeriFactu = "https://sede.agenciatributaria.gob.es/Sede/factura?" +
    "nif=B12345678&fecha=2026-05-29&importe=1210.00&huella=A3F9B2C1D4E5";

var qrVeriFactu = QRCodeWriter.CreateQrCode(payloadVeriFactu, 400,
    QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrVeriFactu.SaveAsPng("factura-verifactu.png");

// DataMatrix para etiqueta SEVeM (AEMPS)
string seVeMPayload = "010841234100020681712312310" + // GTIN + lote + fecha
    "2110000001"; // número de serie
var dataMatrix = BarcodeWriter.CreateBarcode(seVeMPayload,
    BarcodeEncoding.DataMatrix);
dataMatrix.SaveAsPng("seve-m-label.png");

// Barkoder — no tiene SDK .NET; no es aplicable

Conclusión

Barkoder SDK e IronBarcode operan en ámbitos fundamentalmente diferentes. Barkoder es un SDK de escaneo de cámara móvil diseñado para iOS y Android, con un núcleo de procesamiento en C/C++ y distribución a través de CocoaPods, Maven y marcos de trabajo móviles híbridos. IronBarcode es una biblioteca nativa de .NET diseñada para implementaciones en servidores, equipos de escritorio y la nube, distribuida a través de NuGet e integrada en el ecosistema .NET mediante patrones estándar. Las dos bibliotecas no compiten en la misma plataforma: satisfacen los mismos requisitos de procesamiento de códigos de barras en entornos de ejecución completamente diferentes.

Barkoder es la opción correcta a la hora de crear aplicaciones móviles para iOS o Android que necesiten escaneo de cámara en tiempo real. Sus funciones MatrixSight y DeBlur son realmente potentes para escenarios de escaneo de campo donde no se puede controlar la calidad de la imagen. Su detección de múltiples códigos de barras y su compatibilidad con DPM son ideales para los flujos de trabajo móviles de fabricación y logística. Si tu equipo está desarrollando con React Nativoo Flutter para que los trabajadores móviles escaneen objetos físicos con la cámara de un dispositivo, Barkoder debería estar en la evaluación.

IronBarcode es la opción correcta al crear aplicaciones .NET (API de ASP.NET Core , servicios de Windows, canalizaciones de procesamiento de documentos, herramientas de escritorio o funciones en la nube) que necesitan lectura de códigos de barras, generación de códigos de barras o ambas cosas. Cubre todo el flujo de trabajo de códigos de barras desde un único paquete NuGet , se ejecuta completamente de forma local sin dependencias de red y se integra con patrones .NET estándar, incluyendo la inyección de dependencias, async/await y el alojamiento en la nube. Para los desarrolladores .NET que llegaron a Barkoder tras realizar comparativas, IronBarcode ofrece las mismas funcionalidades básicas (lectura tolerante a daños, detección de múltiples códigos de barras, DataMatrix y compatibilidad con formatos de alta densidad) implementadas de forma nativa para la plataforma .NET .

La conclusión práctica es sencilla: si estás programando en C#, Barkoder nunca fue una opción. El tiempo dedicado a evaluar su lista de características es útil, ya que aclara qué capacidades se necesitan, e IronBarcode las cubre todas en el entorno donde se ejecuta realmente la aplicación.

Para los equipos en España que deben cumplir con VeriFactu (QR AEAT), TicketBAI en Bizkaia, Gipuzkoa y Araba, SEVeM para productos farmacéuticos (AEMPS) o SILICIE para el sector vitivinícola, IronBarcode es el generador de códigos de barras .NET que cubre todos estos requisitos desde el servidor sin necesidad de SDKs móviles adicionales. Usted puede iniciar su prueba gratuita de 30 días sin necesidad de clave de licencia.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.

...
Leer más

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
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
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