Si estás escogiendo una biblioteca de código de barras C# para un proyecto .NET ahora mismo, te enfrentas a una decisión más difícil de lo que podrías esperar. El ecosistema ha crecido para incluir al menos una docena de opciones viables, desde paquetes de código abierto de cero coste a SDK de empresa que cuestan miles. Esto es importante porque la elección equivocada es costosa. Los códigos de barras no son decorativos, son infraestructura.Un sistema de gestión de almacenes que procesa 50.000 escaneos por día, una aplicación de atención médica donde los códigos de barras de medicamentos deben ser leídos correctamente cada vez, un sistema POS al por menor que maneja etiquetas conforme a GS1 a través de los mercados internacionales, estos sistemas no pueden tolerar un intercambio de bibliotecas seis meses en la producción.La biblioteca de códigos de barras que elija el día uno se convierte en una dependencia arquitectónica permanente. Nuestro equipo comparó 12 bibliotecas de código de barras C# con un conjunto consistente de criterios: soporte de simbología, capacidad de lectura/escritura, ergonomía de API, implementación cross-platform, soporte de versión .NET y costo total de propiedad. Divulgación completa: somos el equipo detrás de IronBarcode, una de las bibliotecas en esta comparación. Lo tratamos como una entrada entre doce, sujeto a la misma revisión. Ejemplo de código: Generar códigos de barras con IronBarcode // The simplest barcode generation test: create a Code128 barcode and save it. // IronBarcode example — one line: using IronBarCode; var barcode = BarcodeWriter.CreateBarcode("HELLO-2026", BarcodeWriterEncoding.Code128); barcode.SaveAsPng("hello.png"); Imagen de código de barras IronBarcode Las 12 bibliotecas a la vista Aquí está una tabla de referencia rápida con lo esencial. Cada detalle a continuación se expande en las secciones posteriores. Library License Read Write Formats .NET 8+ Cross-Platform NuGet Downloads IronBarcode Commercial ($749+) ✅ ✅ 50+ ✅ Win/Linux/Mac ~2M ZXing.Net Apache 2.0 (Free) ✅ ✅ ~15 ✅ Win/Linux/Mac ~7M Aspose.BarCode Commercial ($979+) ✅ ✅ 80+ ✅ Win/Linux/Mac ~3M BarcodeLib Apache 2.0 (Free) ❌ ✅ ~30 1D ✅ Win/Linux/Mac ~5M Dynamsoft Barcode Reader Commercial (quote) ✅ ❌ 30+ ✅ Win/Linux/Mac ~500K Syncfusion Barcode Commercial (free <$1M) ❌ ✅ ~10 ✅ Win/Linux/Mac ~1M+ LEADTOOLS Barcode Commercial ($1,469+) ✅ ✅ 100+ ✅ Win/Linux/Mac ~200K Spire.Barcode Commercial (free tier) ✅ ✅ 39+ ⚠️ Win/Linux ~800K NetBarcode MIT (Free) ❌ ✅ ~12 1D ✅ Win/Linux/Mac ~500K OnBarcode Commercial ✅ ✅ 20+ ⚠️ Windows ~100K VintaSoft Barcode Commercial ✅ ✅ 40+ ⚠️ Windows ~50K QRCoder MIT (Free) ❌ ✅ QR only ✅ Win/Linux/Mac ~15M IronBarcode IronBarcode Comercial ($749 +) ✅ ✅ Más de 50+ ✅ Win/Linux y Mac - 2M ZXing.Net Gijón.net Apache 2.0 es gratuito ✅ ✅ · 15 ✅ Win/Linux y Mac 7M Aspose.BarCode Comercial ($979 +) ✅ ✅ 80 y más ✅ Win/Linux y Mac - 3M BarcodeLib BarcodeLib Apache 2.0 es gratuito ❌ ✅ 30 1D ✅ Win/Linux y Mac - 5M Dynamsoft Barcode Reader El Comercio (Cita) ✅ ❌ 30 + ✅ Win/Linux y Mac ~ 500K Syncfusion Barcode Comercial (gratuito <$1M) ❌ ✅ ~ 10 ✅ Win/Linux y Mac - 1 m + LEADTOOLS Barcode Comercial ($1.469 +) ✅ ✅ 100 + ✅ Win/Linux y Mac 200K Spire.Barcode Comercial (tierra libre) ✅ ✅ 39 y más ☀️ Win y Linux y 800K NetBarcode El miedo (Free) ❌ ✅ 12 1D ✅ Win/Linux y Mac ~500K OnBarcode Commercial ✅ ✅ 20+ ☀️ Windows 100K VintaSoft Barcode comerciales ✅ ✅ 40 + ⚠️ Windows - 50K QRCoder MIT (Free) ❌ ✅ QR only ✅ Win/Linux y Mac - 15 m ✅ = Full support | ⚠️ = Partial/.NET Standard only | ❌ = Not supported Key: These libraries split into four distinct categories, and understanding where each sits is the fastest way to narrow your shortlist. (read + write + preprocessing + support): IronBarcode, Aspose.BarCode, LEADTOOLS Barcode. These handle both generation and recognition of barcode data, support dozens of formats, and come with commercial support agreements. They are built for production systems where reliability matters more than cost. Full-featured commercial libraries : Dynamsoft Barcode Reader. Dynamsoft specializes in barcode recognition, reading barcodes from camera feeds, scanned images, and documents. It does not generate barcodes. If your application only needs to scan, Dynamsoft deserves serious consideration. Read-focused SDKs BarcodeLib, Syncfusion Barcode, NetBarcode, QRCoder, OnBarcode. Estos crean imágenes de código de barras pero no pueden leerlas de fotografías, escaneos o documentos. Van desde paquetes de código abierto gratuitos (BarcodeLib, QRCoder) hasta suites de control de UI comerciales (Syncfusion). Generation-focused libraries : Spire.Barcode, VintaSoft Barcode. Estos barcos como parte de suites de procesamiento de documentos más grandes. Sus capacidades de código de barras son funcionales pero secundarias a las ofertas básicas de su suite principal. Suite components How to Choose: Matching Libraries to Project Requirements Elegir una biblioteca de códigos de barras no se trata de encontrar la "mejor", sino de encontrar la mejor. Aquí está un marco de decisión práctico organizado por las preguntas que realmente importan. for your project's constraints ¿Necesitas leer los códigos de barras, escribirlos o ambos? This is the single most important filter. It eliminates half the options immediately. If you only need to códigos de barras, realizar tareas como imprimir etiquetas, crear códigos QR para materiales de marketing, incorporar códigos de barras en facturas PDF; entonces las bibliotecas como BarcodeLib, QRCoder o Syncfusion Barcode son perfectamente adecuadas. generate If you need to barcodes from images, camera feeds, scanned documents, or PDFs, your choices narrow to: IronBarcode, ZXing.Net, Aspose.BarCode, Dynamsoft, LEADTOOLS, Spire.Barcode, or VintaSoft. Only these libraries include recognition engines. read If you need — and most production systems eventually do — then IronBarcode, Aspose.BarCode, LEADTOOLS, and ZXing.Net are your primary candidates. both What Is Your Budget? ZXing.Net para leer y escribir, BarcodeLib para la generación sólo, QRCoder para la generación sólo QR. Estos están listos para la producción para muchos escenarios, pero el soporte comercial no existe. $0 (open-source only) IronBarcode (a partir de $749 por desarrollador) ofrece la relación de precio-función más fuerte en esta gama. Under $1,000 Aspose.BarCode ($979+ por desarrollador) y LEADTOOLS ($1,469+ por desarrollador) ambos se encuentran aquí, con LEADTOOLS cargando costes adicionales de licencia de implementación. $1,000–$3,000 : Dynamsoft uses consumption-based pricing. LEADTOOLS requires separate runtime deployment licenses. Both scale well for large organizations but require vendor negotiation. Enterprise / quote-based ¿Qué formatos de código de barras necesitas? For mainstream formats (Code128, QR Code, EAN-13, UPC-A, Data Matrix), virtually every library on this list works. The differences emerge with specialized formats: : Critical for retail and healthcare. IronBarcode, Aspose.BarCode, and LEADTOOLS handle these well. ZXing.Net has partial support. GS1 DataBar / GS1-128 : Required for government IDs and shipping labels. Supported by IronBarcode, Aspose, LEADTOOLS, Dynamsoft. Not supported by BarcodeLib or QRCoder. PDF417 Uso por UPS para la clasificación de paquetes. Sólo IronBarcode, Aspose y LEADTOOLS lo admiten. MaxiCode : Used on airline boarding passes and transit tickets. Supported by IronBarcode, Aspose, LEADTOOLS, Dynamsoft, and ZXing.Net. Aztec Los mercados como Japón y China dependen en gran medida de los códigos QR y de los formatos 2D especializados para los pagos móviles, los sistemas de tránsito y la gestión de la cadena de suministro.Si su aplicación se dirige a estas regiones, priorice las bibliotecas con un fuerte soporte de variantes de código QR (Micro QR, rMQR) y un robusto preprocesamiento para imágenes capturadas por la cámara. What Real-World Scenario Are You Building For? Diferentes industrias imponen diferentes requisitos de código de barras, y la brecha entre "supone el formato" y "mantiene el escenario de forma confiable" es donde la selección de la biblioteca realmente importa. necesitan generar etiquetas de envío y manejar la gestión de inventario (normalmente Código 128 o GS1-128) en volumen y leerlos de vuelta en condiciones imperfectas, etiquetas dañadas, mala iluminación, ángulos distorsionados.Librerías que soportan escaneo multithreaded y preprocesamiento automático de imagen (IronBarcode, Dynamsoft, LEADTOOLS) tienen una ventaja concreta aquí sobre bibliotecas que devuelven los mejores resultados de esfuerzo de imágenes limpias sólo. Warehouse and logistics systems use barcodes on medication packaging (typically GS1 DataBar or Data Matrix) and patient wristbands for identification. Accuracy is non-negotiable, a misread barcode in a medication dispensing system puts patients at risk. Error correction and validation capabilities (checksum verification, confidence scoring) matter more in this domain than in any other. Healthcare and pharmaceutical applications need to handle UPC-A, EAN-13, and QR codes for both product scanning and mobile payment integration. In markets like Japan, China, and South Korea, QR code-based payment is the primary transaction method. Libraries must handle rapid successive scans and integrate with real-time inventory databases. Cross-platform mobile deployment (via .NET MAUI or native SDKs) is often a hard requirement. Retail POS and inventory systems codificar los códigos de barras en las facturas, las reclamaciones de seguros y los documentos legales para el enrutamiento y la clasificación automatizados. Aquí, la capacidad de leer los códigos de barras directamente de las páginas PDF —sin primeramente renderizar a las imágenes— ahorra tanto tiempo de desarrollo como de procesamiento. IronBarcode y Aspose.BarCode admiten códigos de barras almacenados como este nativamente; la mayoría de los otros requieren un paso de renderización PDF separado. Document processing pipelines uses Aztec codes (boarding passes) and PDF417 (ID documents). If your application processes these, you need a library that handles both symbologies with high accuracy from camera captures at various angles and lighting conditions. Airline and transit ticketing Where Will You Deploy? Deployment target is the constraint that most often gets evaluated too late. A library that works perfectly in Visual Studio on Windows may fail at runtime in a Linux Docker container, and the failure mode is often a cryptic native library error rather than a clear exception. : Any library works. This is the easiest deployment scenario and the one most library documentation implicitly assumes. Windows-only server : Eliminate VintaSoft and OnBarcode (Windows-primary). Ensure the library does not depend on IronBarcode, Aspose, Dynamsoft, y ZXing.Net todos manejan bien la implementación cross-platform.Teste temprano, idealmente, su primer "hello world" con la biblioteca debe ejecutarse en un contenedor Docker que coincida con su imagen de base de producción. Linux / Docker / cloud System.Drawing.Common IronBarcode, Syncfusion y Dynamsoft soportan explícitamente .NET MAUI. ZXing.Net tiene un paquete específico para dispositivos móviles (ZXing.Net.Mobile) pero se dirige a Xamarin, no a la moderna MAUI. Para la escaneo de cámaras en tiempo real, Dynamsoft es la opción más fuerte; para la generación de códigos de barras en las interfaces de usuario móviles, el control MAUI de Syncfusion es nativo y pulido. .NET MAUI / mobile Las bibliotecas ligeras (QRCoder, BarcodeLib) comienzan más rápido. Las bibliotecas más pesadas (LEADTOOLS, Aspose) pueden necesitar mayores asignaciones de memoria y presupuestos de inicio frío más largos. IronBarcode y Dynamsoft funcionan sin servidor, pero se benefician de planes de concorrencia o premium que reducen los comienzos fríos. Azure Functions / AWS Lambda Las 12 bibliotecas: lo que cada una hace bien y dónde cada una cae corta 1. IronBarcode Software de Iron : de Título : 2026.2 | : ~ 2M Developer NuGet BarCode Latest Downloads IronBarcode es una biblioteca comercial de códigos de barras .NET que cubre tanto la generación como el reconocimiento en más de 50 simbologías. using IronBarCode; // Generate a styled QR code with a logo var qr = QRCodeWriter.CreateQrCode("https://example.com", 300); qr.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue); qr.SaveAsPng("styled-qr.png"); // Read barcodes from a scanned document var results = BarcodeReader.Read("warehouse-label.png"); foreach (var result in results) Console.WriteLine($"{result.BarcodeType}: {result.Value}"); Generated QR Code and Extracted Barcode Data : The API is concise, generation and reading each take one line of code. Key features include support for many data formats, image correction filters, and the ability to export barcodes to various image formats. Image preprocessing (auto-rotation, sharpening, contrast adjustment) runs automatically during reads, which matters for real-world scans of damaged or poorly printed barcodes. PDF barcode reading is built in, not bolted on. Async and multithreaded scanning are supported for batch operations. Cross-platform support covers Windows, Linux, macOS, Docker, and .NET MAUI. The library supports .NET 8 LTS and .NET 10. You can learn more about the advanced features offered by IronBarcode in it's extensive documentation, . Strengths here Real-world deployments span where shipping labels must be generated and scanned at volume, where scanning accuracy directly affects patient safety, and where GS1-compliant labels need to integrate with existing POS systems. Sistemas de gestión de almacenes healthcare medication tracking retail packaging workflows : No es gratis, la licencia Lite comienza en $749 por desarrollador. El tamaño del paquete NuGet (~30MB con dependencias) es más pesado que las alternativas de código abierto. La documentación es exhaustiva pero las páginas de comparación en el sitio de Iron Software son obviamente promocionales. Limitations : Los equipos que necesitan leer y escribir en una única biblioteca valoran la simplicidad de la API y están construyendo para la implementación trans-plataforma. Especialmente fuerte para las tuberías de procesamiento de documentos que mezclan la exploración de códigos de barras con las operaciones PDF. Best for 2. ZXing.Net : Michael Jahn (community) | : de | : 0.16.x : ~ 7M Developer NuGet Gijón.net Latest Downloads ZXing.Net es el puerto .NET de Google. , the most widely used open-source barcode library in existence. It is free, well-known, and installed in millions of projects. Zebra Crossing library using ZXing; using ZXing.Common; // Generate a Code128 barcode var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.CODE_128, Options = new EncodingOptions { Width = 400, Height = 100 } }; var pixelData = writer.Write("HELLO-2026"); // pixelData.Pixels contains raw ARGB bytes — requires additional imaging library to save ZXing.Net Outptu : Free and open-source under Apache 2.0. Massive community familiarity — most tutorials and Stack Overflow answers reference ZXing. Supports common 1D and 2D formats including QR Code, Data Matrix, Code128, EAN, and Aztec. Lightweight. The codebase is mature and battle-tested. Strengths : The .NET port lags behind the Java original. Format support is narrower than commercial alternatives — no GS1 DataBar, no MaxiCode, limited postal code support. The API is verbose: generating a barcode requires creating writer objects, encoding options, and manual pixel-data handling. Saving to an image file requires a separate imaging library (SkiaSharp, ImageSharp, or System.Drawing). No built-in image preprocessing for damaged scans. No PDF reading. The mobile package (ZXing.Net.Mobile) targets Xamarin, not .NET MAUI. Community maintenance is inconsistent — releases can be months apart. Limitations A practical consideration: because ZXing.Net produces raw pixel data rather than image files, every project that uses it ends up with custom imaging wrapper code. This code is rarely shared between projects, which means every team reinvents the same SkiaSharp-to-PNG pipeline. If your organization has multiple projects using ZXing.Net, you will eventually want to extract that wrapper into a shared library — at which point you have built a significant portion of what commercial libraries provide out of the box. : Projects where budget is zero, requirements are standard formats, and the development team is comfortable assembling their own imaging pipeline around the core library. Also a reasonable choice for simple read-only scenarios where the image quality is consistently good (pre-printed labels, digital barcode images). Best for 3. Aspose.BarCode Apuestas : de | : 26.2 | : ~ 3M Developer NuGet Aspose.BarCode Latest Downloads Aspose.BarCode es el componente del código de barras de Aspose Afirma soporte para más de 80 simbologías y corre en .NET, Java, C++ y Python. Suite de procesamiento de documentos using Aspose.BarCode.Generation; using Aspose.BarCode.BarCodeRecognition; // Generate var generator = new BarcodeGenerator(EncodeTypes.Code128, "HELLO-2026"); generator.Save("aspose-barcode.png"); // Read using var reader = new BarCodeReader("aspose-barcode.png", DecodeType.Code128); foreach (var result in reader.ReadBarCodes()) Console.WriteLine($"{result.CodeType}: {result.CodeText}"); Aspose.BarCode Output 4. BarcodeLib : Brad Barnhill | : | : 3.1.5 Tamaño : ~ 5M Developer NuGet BarcodeLib Latest Downloads BarcodeLib is a lightweight, barcode library. It creates 1D barcode images from strings. That is all it does, and it does it well. open-source generation using BarcodeLib; using SkiaSharp; var b = new Barcode(); b.IncludeLabel = true; var img = b.Encode(BarcodeStandard.Type.UpcA, "038000356216", SKColors.Black, SKColors.White, 290, 120); // img is an SKImage — save with SkiaSharp La salida de BarcodeLib : Simple, rápido, configuración cero necesaria. Soporta ~30 simbologías 1D incluyendo UPC-A/E, EAN-8/13, Code128, Code39, Code93, ITF, Codabar y Postnet. La API es una llamada de método. Apache 2.0 licenciado. Migrado de System.Drawing a SkiaSharp, asegurando compatibilidad cross-platform en el moderno .NET. Paquete extremadamente ligero. Strengths : 1D barcodes only, no QR codes, no Data Matrix, no PDF417. Generation only, cannot read barcodes. No preprocessing, no PDF support, no batch operations. If your requirements grow beyond simple 1D generation, you will need to replace this library entirely. Limitations : Projects that need to generate standard 1D barcodes (product labels, inventory tags) with minimal overhead and zero cost. A good starting point for MVPs that may graduate to a fuller library later. Best for teams start with BarcodeLib for a prototype, ship it to production, and six months later receive a requirement to also barcodes from customer-uploaded images. At that point, they either add a second library (ZXing.Net for reading) or migrate entirely to a read+write library (IronBarcode, Aspose). If you suspect your requirements will grow beyond generation, consider starting with a fuller library to avoid the migration cost later. If you are confident the scope will stay narrow, BarcodeLib is hard to beat for what it does. A common pattern we see: read 5. Dynamsoft Barcode Reader : Dynamsoft | : Dynamsoft.DotNet.BarcodeReader | : ~ 500K Developer NuGet Downloads Dynamsoft is a barcode specialist. The company has spent over two decades optimizing barcode recognition from camera feeds, scanned documents, and low-quality images. They do not generate barcodes. Their cubre la configuración, la configuración de plantillas y el ajuste de rendimiento. reading .NET SDK documentation // Dynamsoft uses a template-based configuration approach // Initialization requires a license key and runtime setup using Dynamsoft.DBR; var reader = BarcodeReader.GetInstance(); var results = reader.DecodeFile("damaged-label.jpg"); foreach (var result in results) Console.WriteLine($"{result.BarcodeFormatString}: {result.BarcodeText}"); : La precisión de reconocimiento es una de las más altas de la industria. Dynamsoft reclama un 34,9% más de códigos QR reconocidos que el próximo mejor competidor en su punto de referencia de más de 1.000 códigos en 16 tipos de calidad de imagen. Las plantillas de reconocimiento personalizables permiten el ajuste perfecto para condiciones específicas de códigos de barras (deteriorados, borrosos, bajo contraste, ángulos extremos). El escaneo de feed de cámara en tiempo real es una característica de primera clase, no una reflexión posterior. SDKs multiplataformas cubren .NET, JavaScript, Python, Java y móvil. certificado ISO 27001. Strengths : Sólo para lectura, sin generación de código de barras en absoluto. El precio es basado en el consumo y depende de la cuota, lo que dificulta la predicción de costos para cargas de trabajo de volumen variable. El .NET SDK requiere más configuración que bibliotecas más simples. El modelo de licencia incluye claves de tiempo de ejecución y activación en línea, lo que puede complicar las implementaciones con brechas de aire. Limitations : Aplicaciones donde la precisión del reconocimiento de los feeds de la cámara en el mundo real o los documentos dañados es la prioridad. escaneo de almacenes, sistemas POS móviles y imágenes de control de calidad industrial. También fuerte para organizaciones que necesitan soporte de SDK multilingüe (JavaScript para la web, .NET para backend, nativo móvil para aplicaciones) de un único proveedor. Best for The read-only limitation is important to understand architecturally: if your application needs to both generate and scan barcodes (most production systems do), Dynamsoft must be paired with a generation library. Common pairings include Dynamsoft + QRCoder (for QR generation) or Dynamsoft + IronBarcode (for full-format generation). This adds a dependency but lets you use best-in-class tools for each task. Generador de códigos de barras Syncfusion : Syncfusion | : Various (per framework) | : ~1M+ Developer NuGet Downloads El generador de códigos de barras de Syncfusion es un control de interfaz incorporado dentro de su enorme Genera códigos de barras como componentes visuales en aplicaciones Blazor, .NET MAUI, WinForms, WPF y ASP.NET Core. Suite de Estudio Esencial // Syncfusion — MAUI XAML approach // <barcode:SfBarcodeGenerator Value="https://example.com" ShowText="True" // HeightRequest="250" WidthRequest="250"> // <barcode:SfBarcodeGenerator.Symbology> // <barcode:QRCode /> // </barcode:SfBarcodeGenerator.Symbology> // </barcode:SfBarcodeGenerator> : Licencia comunitaria gratuita para organizaciones con ingresos inferiores a 1 millón de dólares y menos de 5 desarrolladores. Integración con el marco de UI profundo, el control de código de barras es un componente nativo de XAML/Blazor, no una biblioteca de generación de imágenes. Soporta simbologías 1D comunes (Code128, EAN, UPC, Code39) y 2D (Código QR, Matriz de Datos). La personalización visual (colores, posicionamiento de texto, tamaño de módulo) está integrada en las propiedades de control. La documentación es completa con guías específicas del marco. Strengths : Generation only, no barcode reading/recognition. Limited symbology range (~10 types) compared to dedicated barcode libraries. You must adopt the full Syncfusion ecosystem (NuGet packages, handler registration, licensing infrastructure). The barcode control is tightly coupled to specific UI frameworks, it is not a general-purpose image-generation library you can call from a console app or background service. If you are not already using Syncfusion controls, adopting them for barcode generation alone is architectural overkill. Limitations Equipos que ya han invertido en el ecosistema de Syncfusion UI que necesitan mostrar códigos de barras en aplicaciones front-end.No adecuado para procesamiento de códigos de barras de back-end, generación de documentos o escaneo de flujos de trabajo. Best for 7. LEADTOOLS Barcode Apryse (anteriormente LEAD Technologies) Archivo de la etiqueta: Leadtools.Barcode : ~ 200K Developer NuGet Downloads LEADTOOLS is a 30-year-old que incluye la funcionalidad de código de barras como parte de un documento más grande y el kit de herramientas de imagen médica. soporta más de 100 tipos de códigos de barras y subtipos, el más de cualquier biblioteca en esta comparación. Imagen de SDK : Ancho de simbología inigualable, más de 100 tipos incluidos todos los principales códigos de barras 1D, 2D, postal y compuesto. Algoritmos de reconocimiento patentados alimentados por IA. Preprocesamiento avanzado (deskew, eliminación de ruido, eliminación de agujeros, corrección de glare). Soporte multilingüe en plataformas .NET, C++, Java y móviles. Strengths : La opción más cara en esta comparación. Las licencias de desarrollo comienzan en $1.469, y la implementación requiere licencias de tiempo de ejecución separadas cuyo precio varía según el modelo de implementación (debe contactar con ventas para citas). La superficie de la API es grande y compleja, LEADTOOLS es un SDK de imagen primero y una biblioteca de código de barras segundo. Usted carga objetos RasterImage, crea instancias de BarcodeEngine y configura opciones específicas para la simbología. Esta no es una API de una sola línea. Overkill para proyectos que sólo necesitan funcionalidad de código de barras. La curva de aprendizaje es la más abrupta entre todas las 12 bibliotecas. Limitations : Enterprise organizations already using LEADTOOLS for imaging, medical DICOM processing, or government document workflows. Projects requiring extremely rare barcode symbologies or industrial-grade image preprocessing. Worth noting: LEADTOOLS was acquired by Apryse in 2023, which may affect long-term product strategy and pricing — something to verify with the vendor before committing to a multi-year deployment. Best for 8. Spire.Barcode Etiquetas: e-iceblue : de | : ~ 800K Developer NuGet Especificaciones. barcode Downloads Spire.Barcode es el componente de código de barras de Spire.Office de e-iceblue , un competidor con sede en China para Aspose. Soporta más de 39 formatos de códigos de barras con generación y reconocimiento. La suite : Free community edition available with limited features. Supports both 1D and 2D formats including QR Code, Data Matrix, and PDF417. Simple "one line of code" API for generation. Component mode allows drag-and-drop barcode creation in WinForms/ASP.NET designers. The paid edition improves scanning speed significantly over the free tier. Strengths : Cross-platform support is incomplete, the library depends on System.Drawing.Common on .NET Framework and uses SkiaSharp on modern .NET, but MAUI/mobile support is unclear. .NET 8+ compatibility exists through .NET Standard 2.0 targeting, not native .NET 8 builds. Documentation is sparser than Western competitors. The free tier adds evaluation watermarks to generated barcodes. NuGet package size is large (~15MB). Community adoption outside China is limited. Limitations Equipos que ya utilizan componentes de Spire.Office, o desarrolladores que trabajan principalmente en entornos de desarrollo en lengua china donde e-iceblue tiene un mayor apoyo de la comunidad. Best for 9. NetBarcode : Tagliatti (community) | NETBARCODE : 1.7.x | : ~ 500K Developer NuGet Latest Downloads NetBarcode es un mínimo, Crea códigos de barras 1D utilizando ImageSharp (anteriormente System.Drawing). MIT-licensed : Licencia MIT, verdaderamente libre sin restricciones. Pequeña huella. API simple. Migrado a SixLabors.ImageSharp, eliminando la dependencia de System.Drawing para un auténtico soporte cross-platform. Soporta formatos 1D estándar: Code128, Code39, Code93, EAN-13, EAN-8, y algunos otros. Strengths : Sólo generación, sin lectura de códigos de barras. sólo códigos de barras 1D, sin códigos QR, sin matriz de datos. Soporte limitado de simbología (~12 tipos). opciones de personalización mínimas. mantenedor único con actualizaciones raras. sin soporte comercial. Limitations : Generación mínima de código de barras 1D en aplicaciones .NET donde cada byte de dependencia cuenta y la licencia MIT es un requisito difícil. NetBarcode es el "microlib" de esta comparación, hace una cosa con un mínimo de sobrecarga. Para microservicios containerizados donde el tamaño de la imagen importa, la pequeña huella de NetBarcode es una verdadera ventaja sobre las alternativas más pesadas. La dependencia de ImageSharp también significa que funciona limpiamente en todas las plataformas sin el System.Drawing preocupaciones que plagan las bibliotecas más antiguas. Best for El código OnBarcode : Título : .NET Standard 2.0 Developer OnBarcode Platform OnBarcode proporciona SDKs de generación y reconocimiento de códigos de barras con las variantes .NET y Java. La biblioteca admite más de 20 simbologías en dos DLLs separados, uno basado en System.Drawing.Common (Windows) y uno en SkiaSharp (cross-platform). : Producto maduro con una larga historia. Soporta tanto la generación como el reconocimiento. Proporciona DLLs separados para entornos de Windows y cross-platform. Soporte de codificación de datos GS1 para aplicaciones de la cadena de suministro y minorista. Strengths : El público principal son los desarrolladores de Windows, el soporte de Linux y macOS llegó más tarde y es menos probado. .NET 8+ soporte es a través de .NET Standard, no de la orientación nativa. Información sobre precios y licencias no se publica de forma transparente en su sitio web. La calidad de la documentación se detiene detrás de los competidores de primer nivel. Las cuentas de descarga de NuGet sugieren una base de usuarios más pequeña (~100K), que se correlaciona con menos recursos comunitarios y respuestas de Stack Overflow. Limitations Proyectos de .NET Framework centrados en Windows que requieren una generación básica de código de barras con alguna capacidad de reconocimiento. OnBarcode tiene una larga historia en el espacio de código de barras .NET y fue uno de los primeros entrantes en el mercado. Los equipos que mantienen las aplicaciones .NET Framework 4.x legados pueden encontrarlo un ajuste más natural que las bibliotecas que han pivotado completamente a .NET moderno. Sin embargo, para nuevos proyectos que se dirigen a .NET 8+, las alternativas anteriores ofrecen una mejor experiencia de desarrollador y un mayor soporte cross-platform. Best for El código de barras VintaSoft VintaSoft : .NET Framework / .NET Standard Developer Platform Es parte del kit de herramientas de imagen de VintaSoft. soporta la lectura y la escritura de más de 40 símbolos 1D y 2D en imágenes digitales y archivos PDF. Código de barras .NET SDK : Soporta tanto la generación como el reconocimiento en una amplia gama de símbolos. lectura de códigos de barras PDF. Incluye un componente de visualizador de imagen WPF para la pantalla de códigos de barras interactiva. Integración con el conjunto de herramientas de imagen y documento más amplio de VintaSoft. Strengths Soporte cross-platform (.NET Core / .NET 5+) existe pero es secundario a la experiencia de Windows. Una base de usuarios más pequeña significa menos recursos comunitarios, tutoriales e integraciones de terceros. El precio requiere contactar con las ventas. El producto evoluciona más lentamente que las bibliotecas que compiten activamente como IronBarcode o Aspose. Limitations Las aplicaciones de escritorio de Windows ya utilizan la pila de imágenes de VintaSoft, particularmente los visualizadores de documentos basados en WPF. La integración del visualizador de WPF es su punto de venta único: si su aplicación necesita una pantalla de códigos de barras interactiva con pan/zoom y anotación junto con la detección de códigos de barras, VintaSoft lo proporciona en un solo componente en lugar de requerir bibliotecas de imágenes y códigos de barras separadas. Best for 12 Caderno Raffael Herrmann (Comunidad) : de | : ~ 15M Developer NuGet QRCoder Downloads QRCoder es el barcode-related package on NuGet — but it does exactly one thing: generate QR codes. No reading. No other formats. Más descargadas using QRCoder; var generator = new QRCodeGenerator(); var data = generator.CreateQrCode("https://example.com", QRCodeGenerator.ECCLevel.Q); var qrCode = new PngByteQRCode(data); byte[] qrCodeImage = qrCode.GetGraphic(20); File.WriteAllBytes("qr.png", qrCodeImage); QRCoder Producción : Laser-focused scope. Extremely well-maintained with frequent releases. 15M+ NuGet downloads prove production reliability. Zero external dependencies in the core package. Multiple output renderers: PNG bytes, SVG, ASCII art, PDF, and more. MIT licensed. Supports error correction levels, custom colors, and quiet zones. Strengths : sólo códigos QR, sin otra simbología. sólo generación, no puede leer códigos QR. Si eventualmente necesita cualquier otro tipo de código de barras o capacidad de reconocimiento, necesitará una segunda biblioteca. Limitations : Proyectos que sólo necesitan la generación de código QR y quieren la opción más probada, ligera y libre de dependencias disponible. materiales de marketing, codificación de URL, códigos QR para pagos móviles, ticketing de eventos. Best for La cantidad de descargas de QRCoder de 15 millones lo convierte en uno de los paquetes más confiables en el ecosistema .NET. Su arquitectura de renderizado es particularmente bien diseñada: puede exportar códigos QR como bytes PNG, cuerdas SVG, arte ASCII para la pantalla terminal, o incluso como páginas PDF, todo sin agregar una sola dependencia externa. Para los equipos que incorporan códigos QR en páginas web (PNGs codificados con Base64 o SVGs en línea), la API de QRCoder es la opción más ergonómica disponible. El único escenario en el que QRCoder cae por debajo de las expectativas es cuando los desarrolladores asumen que porque genera códigos QR tan bien, también debe leerlos. no. Si necesita generar y leer códigos QR, pare QRCoder con ZXing.Net (gratuito) o IronBarcode (comercial) para el lado de lectura. Artículo siguienteGenerando un código de barras Code128 La mejor manera de sentir las diferencias de API entre las bibliotecas es ver la misma tarea en cada una.Aquí está cómo cuatro bibliotecas generan un código de barras Code128 de la cadena "SHIP-2026-0042" y lo guardan como una imagen PNG. (1 línea de código significativo): IronBarcode using IronBarCode; BarcodeWriter.CreateBarcode("SHIP-2026-0042", BarcodeWriterEncoding.Code128) .SaveAsPng("iron-barcode.png"); (Necesita una biblioteca de imágenes adicionales): ZXing.Net using ZXing; using ZXing.Common; using SkiaSharp; var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.CODE_128, Options = new EncodingOptions { Width = 400, Height = 100, Margin = 10 } }; var pixelData = writer.Write("SHIP-2026-0042"); using var bitmap = new SKBitmap(pixelData.Width, pixelData.Height); System.Runtime.InteropServices.Marshal.Copy(pixelData.Pixels, 0, bitmap.GetPixels(), pixelData.Pixels.Length); using var image = SKImage.FromBitmap(bitmap); using var data = image.Encode(SKEncodedImageFormat.Png, 100); File.WriteAllBytes("zxing-barcode.png", data.ToArray()); (2 lines of meaningful code): Aspose.BarCode using Aspose.BarCode.Generation; var generator = new BarcodeGenerator(EncodeTypes.Code128, "SHIP-2026-0042"); generator.Save("aspose-barcode.png"); (3 líneas + SkiaSharp para guardar): BarcodeLib using BarcodeLib; using SkiaSharp; var b = new Barcode(); var img = b.Encode(TYPE.CODE128, "SHIP-2026-0042", SKColors.Black, SKColors.White, 400, 100); using var data = img.Encode(SKEncodedImageFormat.Png, 100); File.WriteAllBytes("barcodelib-barcode.png", data.ToArray()); La toma de decisiones es clara: IronBarcode y Aspose.BarCode abstraen completamente la tubería de imagen. y BarcodeLib requieren que lleve su propia solución de codificación de imagen. Para un script de una sola vez esto apenas importa. Para una base de código mantenida por varios desarrolladores a lo largo de los años, las API comparten simplicidad. Gijón.net Hay un punto arquitectónico más profundo aquí. Las bibliotecas que producen datos de píxeles brutos (ZXing.Net) o los objetos de SkiaSharp (BarcodeLib) te obligan a adoptar una dependencia de imagen específica en todo tu flujo de trabajo de código de barras. Si después cambias de bibliotecas de imagen, por ejemplo, de SkiaSharp a ImageSharp, tendrás que refactorar cada sitio de llamada. Las bibliotecas que manejan su propia salida de imagen (IronBarcode, Aspose) aislan tu código de aplicación de los detalles de la implementación de la imagen. Esto es más importante de lo que la mayoría de los desarrolladores se dan cuenta hasta que tienen tres años en un proyecto y se enfrentan a una actualización de dependencia. Head-to-Head: leer códigos de barras de imágenes Reading is where the real differentiation occurs. Here is how four libraries handle reading barcodes from a scanned warehouse label image: : IronBarcode using IronBarCode; var results = BarcodeReader.Read("warehouse-label.png"); foreach (var r in results) Console.WriteLine($"[{r.BarcodeType}] {r.Value}"); (Necesita cargar la imagen manualmente): ZXing.Net using ZXing; using SkiaSharp; using var bitmap = SKBitmap.Decode("warehouse-label.png"); var reader = new BarcodeReaderGeneric(); var luminanceSource = new SKBitmapLuminanceSource(bitmap); var result = reader.Decode(luminanceSource); Console.WriteLine(result?.Text ?? "No barcode found"); // Note: Decode() returns only the first barcode found : Aspose.BarCode using Aspose.BarCode.BarCodeRecognition; using var reader = new BarCodeReader("warehouse-label.png"); foreach (var result in reader.ReadBarCodes()) Console.WriteLine($"[{result.CodeType}] {result.CodeText}"); : Dynamsoft using Dynamsoft.DBR; BarcodeReader.InitLicense("YOUR-LICENSE-KEY"); var reader = BarcodeReader.GetInstance(); var results = reader.DecodeFile("warehouse-label.jpg"); foreach (var r in results) Console.WriteLine($"[{r.BarcodeFormatString}] {r.BarcodeText}"); Todas las cuatro manejan bien las imágenes de códigos de barras limpias y de alto contraste. Las diferencias superficiales con entradas desafiantes: códigos de barras rotativos, capturas de cámara de baja resolución, etiquetas dañadas o códigos de barras incrustados en PDFs de múltiples páginas. El preprocesamiento automático de IronBarcode (afilamiento, contraste, corrección de rotación) y el ajuste de reconocimiento basado en plantilla de Dynamsoft están diseñados específicamente para estos escenarios. ZXing.Net no proporciona ningún preprocesamiento, debe manejar la corrección de imagen usted mismo o aceptar tasas de reconocimiento más bajas. Una sutileza que a menudo sorprende a los desarrolladores: el método Decode() de ZXing.Net devuelve sólo la Si su documento escaneado contiene múltiples códigos de barras (común en las etiquetas de envío, los formularios de seguro y las facturas de elementos múltiples), debe configurar el lector de forma explícita para devolver múltiples resultados. IronBarcode, Aspose y Dynamsoft por defecto para la detección de códigos de barras múltiples. Esta distinción sola ha causado errores de producción en sistemas que asumían que todos los códigos de barras en una página se encontrarían. first Another consideration is En los flujos de trabajo de documentos pesados, el procesamiento de reclamaciones de seguros, la gestión de documentos legales, el papel de la cadena de suministro, los códigos de barras se incorporan a los archivos PDF, no a imágenes independientes. IronBarcode lee códigos de barras directamente de las páginas PDF a través de BarcodeReader.ReadPdf() sin requerir al desarrollador que primero renderice cada página a una imagen. Aspose logra esto a través de la integración con Aspose.PDF. ZXing.Net y Dynamsoft requieren un paso de renderización separado de PDF a imagen utilizando una biblioteca como PDFium o IronPDF. Este paso adicional agrega complejidad, dependencias y tiempo de procesamiento, especialmente para los lotes de documentos de cientos de páginas. PDF reading Performance and Batch Processing Los criterios de rendimiento para las bibliotecas de códigos de barras son difíciles de estandarizar porque la velocidad de reconocimiento depende en gran medida de la calidad de la imagen, el tipo de código de barras, la resolución de la imagen y el número de códigos de barras por imagen. Velocidad de reconocimiento de imagen única Para imágenes de código de barras limpias y bien formatadas (alto contraste, ningún daño, código de barras único por imagen), todas las bibliotecas que soportan la lectura completan la tarea en menos de 100 milisegundos. Arquitectura de procesamiento de batches Cuando se procesan miles de imágenes de códigos de barras -un requisito común en la digitalización de documentos, la recepción de almacenes y el procesamiento de reclamaciones de seguros- la arquitectura de procesamiento de lotes de la biblioteca importa significativamente. El BarcodeReader acepta BarcodeReaderOptions que incluyen Multithreaded = true y puede procesar TIFFs y PDFs multipáginas página por página sin cargar documentos enteros a la memoria. IronBarcode using IronBarCode; var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Balanced, ExpectMultipleBarcodes = true, Multithreaded = true, MaxParallelThreads = 4, ExpectBarcodeTypes = BarcodeEncoding.All }; var results = BarcodeReader.Read("multiple-barcodes.pdf", options); Console.WriteLine($"Found {results.Count()} barcodes across all pages"); Procesamiento de lotes con IronBarcode proporciona capacidades de lotes similares a través de su clase de BarCodeReader con prefijos de QualitySettings configurables (HighPerformance, NormalQuality, HighQuality, MaxBarCodes). El prefijo equilibra la velocidad contra la minuciosidad - HighPerformance salta el análisis de imagen costoso, mientras que MaxBarCodes busca exhaustivamente cada región. Aspose.BarCode utiliza un enfoque basado en plantillas donde los parámetros de escaneo (formatos esperados, región de interés, ajustes de desbloqueo) se especifican en plantillas JSON. Esto permite una optimización de grano fino por caso de uso. Dynamsoft No proporciona el procesamiento de lotes integrado. Los desarrolladores implementan su propio paralelismo usando Task.WhenAll o Parallel.ForEach, cargando y procesando imágenes individualmente. Esto funciona pero pone la carga de orquestación en el código de la aplicación. ZXing.Net La ventaja aquí es que el preprocesamiento (deskew, despeckle, border removal) y la lectura de códigos de barras se pueden encadenar en un único tubo de barras, que es eficiente para los flujos de trabajo de documentos escaneados donde cada imagen necesita limpiar antes de leer. LEADTOOLS Memory Footprint Considerations Libraries that load entire PDF documents or high-resolution images into memory can cause problems in resource-constrained environments (Azure App Service, AWS Lambda, Kubernetes pods with memory limits). IronBarcode processes PDF pages individually to manage memory. Aspose's approach is similar. ZXing.Net operates on individual images, so memory management is the developer's responsibility. Dynamsoft's server SDK is optimized for high-throughput low-memory operation. LEADTOOLS provides explicit memory management through its RasterImage disposal patterns but requires careful coding to avoid leaks in batch scenarios. Ventajas del Preprocesamiento Para los sistemas de producción, la precisión de reconocimiento en las entradas imperfectas es más importante que la velocidad cruda en las entradas limpias. Una biblioteca que lee 10.000 códigos de barras limpios por segundo pero falla en el 5% de las escaneas del mundo real cuesta más —en términos operativos— que una que procesa 5.000 por segundo con una tasa de fallos del 0,5%. El preprocesamiento de imagen (auto-rotación, aumento de contraste, agudización, reducción de ruido) es lo que rompe esta brecha. IronBarcode, Dynamsoft y LEADTOOLS incluyen preprocesamiento en su tubería de reconocimiento. Símbolos de Matrix Esta matriz cubre los formatos más comúnmente necesarios en la producción. Para listas completas, consulte la documentación oficial de cada biblioteca. Symbology IronBarcode ZXing.Net Aspose BarcodeLib Dynamsoft Syncfusion LEADTOOLS Spire QRCoder Code 128 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ Code 39 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ QR Code ✅ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ✅ Data Matrix ✅ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ EAN-13 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ UPC-A ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ PDF417 ✅ ✅ ✅ ❌ ✅ ❌ ✅ ✅ ❌ Aztec ✅ ✅ ✅ ❌ ✅ ❌ ✅ ❌ ❌ GS1 DataBar ✅ ⚠️ ✅ ❌ ✅ ❌ ✅ ❌ ❌ MaxiCode ✅ ❌ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Micro QR ✅ ❌ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Intelligent Mail ✅ ❌ ✅ ❌ ❌ ❌ ✅ ❌ ❌ Código 128 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ Código 39 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ Código QR ✅ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ✅ La matriz de datos ✅ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ EAN-13 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ La UPC ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ Pdf417 ✅ ✅ ✅ ❌ ✅ ❌ ✅ ✅ ❌ Aztecas ✅ ✅ ✅ ❌ ✅ ❌ ✅ ❌ ❌ GS1 DataBar ✅ ☀️ ✅ ❌ ✅ ❌ ✅ ❌ ❌ MaxiCode ✅ ❌ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Micro QR ✅ ❌ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Correo inteligente ✅ ❌ ✅ ❌ ❌ ❌ ✅ ❌ ❌ Key: ✅ = Leer + Escribir ⚠️ = Soporte parcial ⚠️ = No se admite Tres patrones surgen de esta matriz. En primer lugar, las bibliotecas comerciales (IronBarcode, Aspose, LEADTOOLS) cubren consistentemente el rango más amplio, son las únicas opciones si necesita formatos como MaxiCode, Micro QR, o Mail Intelligent. En segundo lugar, ZXing.Net cubre formatos mainstream bien pero cae rápidamente para códigos industriales o postales especializados. En tercer lugar, las bibliotecas de generación única (BarcodeLib, QRCoder, Syncfusion) están inherentemente limitadas a los formatos para los que fueron diseñados. Una nota práctica sobre la simbología afirma: LEADTOOLS y Aspose citan los números más altos (100+ y 80+ respectivamente), pero muchos de ellos son subtipos de la misma familia. Por ejemplo, el Código 128A, el Código 128B y el Código 128C están listados como tres entradas separadas por algunos proveedores pero son realmente variantes de una única especificación. El número que importa no es "cuántas simbologías" sino "acepta los formatos específicos que mi aplicación necesita". Para los equipos que no están seguros de qué formatos necesitarán, aquí está un mínimo seguro: Código 128 (alfanumérico de propósito general), Código QR (2D datos con corrección de errores), EAN-13 / UPC-A (productos minoristas) y Data Matrix (compacto 2D para la marcación industrial). Cualquier biblioteca que soporte estos cuatro cubre aproximadamente el 90% de los escenarios de códigos de barras del mundo real. Si sus requisitos incluyen las normas GS1 (sanidad, productos frescos, cupones), asegúrese de que su biblioteca elegida soporta explícitamente GS1 DataBar y GS1-128 — el soporte parcial es común y puede causar fallos de cumplimiento. Compatibilidad de plataforma y implementación Los proyectos .NET modernos se desplegan en todas partes, los servidores de Windows, los contenedores de Docker de Linux, los servicios de aplicaciones de Azure, las funciones de AWS Lambda y los dispositivos móviles. Library .NET 8 LTS .NET 10 Linux/Docker macOS .NET MAUI Blazor Azure/AWS IronBarcode ✅ ✅ ✅ ✅ ✅ ✅ ✅ ZXing.Net ✅ ✅ ✅ ✅ ⚠️ ✅ ✅ Aspose.BarCode ✅ ✅ ✅ ✅ ✅* ✅ ✅ BarcodeLib ✅ ✅ ✅ ✅ ❌ ✅ ✅ Dynamsoft ✅ ✅ ✅ ✅ ✅ ❌ ✅ Syncfusion ✅ ✅ ✅ ✅ ✅ ✅ ✅ LEADTOOLS ✅ ⚠️ ✅ ✅ ✅ ⚠️ ✅ Spire.Barcode ⚠️ ⚠️ ✅ ⚠️ ❌ ❌ ⚠️ NetBarcode ✅ ✅ ✅ ✅ ❌ ❌ ✅ QRCoder ✅ ✅ ✅ ✅ ❌ ✅ ✅ IronBarcode ✅ ✅ ✅ ✅ ✅ ✅ ✅ Gijón.net ✅ ✅ ✅ ✅ ☀️ ✅ ✅ Aspose.BarCode ✅ ✅ ✅ ✅ ✅ ✅ BarcodeLib ✅ ✅ ✅ ✅ ❌ ✅ ✅ Dinámicas ✅ ✅ ✅ ✅ ✅ ❌ ✅ Sinfusión ✅ ✅ ✅ ✅ ✅ ✅ ✅ herramientas ✅ ☀️ ✅ ✅ ✅ ☀️ ✅ Especificaciones. barcode ☀️ ☀️ ✅ ☀️ ❌ ❌ ☀️ NETCODE ✅ ✅ ✅ ✅ ❌ ❌ ✅ Cuaderno ✅ ✅ ✅ ✅ ❌ ✅ ✅ Key: ✅ = Testado/documentado ⚠️ = A través de .NET Standard / no probado explícitamente 💡 = No se admite * = A través de la meta .NET MAUI La línea de división crítica es por microsoft en .NET 6, y se marcó Windows-sólo en .NET 7+. Las bibliotecas que todavía dependen de ella (versiones más antiguas de BarcodeLib, Spire, OnBarcode) fallarán silenciosamente o lanzarán excepciones de tiempo de ejecución cuando se implementen en contenedores Linux. IronBarcode, Aspose y ZXing.Net han migrado todos lejos de esta dependencia. Siempre verifique el backend de imagen de su biblioteca elegida antes de comprometerse a la implementación cross-platform. System.Drawing.Common Desactivado este paquete para plataformas no Windows Desarrollo de Docker y Cloud Las aplicaciones .NET modernas se desplegan cada vez más en contenedores Docker basados en Linux que funcionan en Kubernetes, Azure App Service o AWS ECS. Las bibliotecas de códigos de barras que se dirigen a .NET 8+ nativamente (no a través de la compatibilidad .NET Standard) generalmente ofrecen la experiencia más suave. Las bibliotecas que se dirigen a .NET Standard 2.0 funcionan técnicamente en .NET 8, pero pueden faltar optimizaciones específicas de la plataforma y pueden introducir conflictos de resolución de dependencias. Un gotcha específico: algunas bibliotecas de códigos de barras requieren bibliotecas nativas del sistema para el procesamiento de imágenes. En una imagen Docker mínima (como mcr.microsoft.com/dotnet/runtime:8.0), éstas pueden no estar presentes. IronBarcode envía sus propios binarios nativos. ZXing.Net se basa en cualquier biblioteca de imagen con la que la combine. Dynamsoft incluye bibliotecas nativas específicas de plataforma en su paquete NuGet. Si su imagen de Docker carece de libgdiplus o libfontconfig, las bibliotecas dependiendo de System.Drawing o ciertas configuraciones de SkiaSharp fallarán en el tiempo de ejecución. Siempre prueba en un contenedor que coincida con su imagen de base de producción. .NET MAUI y consideraciones móviles El escaneo de códigos de barras móviles es fundamentalmente diferente del procesamiento del lado del servidor. La entrada es un feed de cámara en vivo con iluminación variable, desvanecimiento de movimiento y ángulos impredecibles.Librerías diseñadas para el procesamiento de imagen basado en archivos (la mayoría de las entradas en esta lista) necesitan adaptación para escenarios de cámara en tiempo real. IronBarcode soporta los objetivos de .NET MAUI y puede procesar imágenes capturadas por la cámara, aunque no está específicamente optimizado para los feeds de vídeo en vivo de la manera de Dynamsoft. El control de código de barras de Syncfusion genera códigos de barras en las UI de MAUI pero no las lee. ZXing.Net.Mobile existe para Xamarin pero no ha sido actualizado para .NET MAUI a partir de esta escritura. Comparación de precios y licencias Un "gratuito" biblioteca que cuesta a su equipo 40 horas adicionales de trabajo de integración no es realmente más barato que una opción comercial de $ 749. Library License Model Entry Price Includes Support Free Tier Redistribution IronBarcode Perpetual per-developer $749 1 year included 30-day trial Add-on ($) ZXing.Net Apache 2.0 $0 Community only ✅ Full ✅ Free Aspose.BarCode Perpetual per-developer $979 1 year included Evaluation (watermark) Add-on ($) BarcodeLib Apache 2.0 $0 Community only ✅ Full ✅ Free Dynamsoft Consumption-based Quote Included 30-day trial License-dependent Syncfusion Per-developer $0 (<$1M revenue) Included Community license Suite-dependent LEADTOOLS Per-developer + runtime $1,469 1 year included 60-day eval Separate runtime ($) Spire.Barcode Per-developer Quote Included Free edition (limited) Add-on ($) NetBarcode MIT $0 Community only ✅ Full ✅ Free QRCoder MIT $0 Community only ✅ Full ✅ Free IronBarcode Perpetuo Per-desarrollador 749 dólares 1 año incluido 30 días de juicio Añadido ($) Gijón.net El Apache 2.0 0 dólares Comunidad sólo Todo lleno Libre Título: BarCode Perpetuo Per-desarrollador 979 dólares 1 año incluido Evaluación (marca de agua) Añadido ($) BarcodeLib El Apache 2.0 0 dólares Comunidad sólo Todo lleno Libre Dinámicas Basado en el consumo Citaciones Incluido 30 días de juicio Licencia dependiente Sinfusión Desarrollador $0 (<$1M de ingresos) Incluido Licencia Comunitaria dependencias herramientas Desarrollador + Runtime 1 469 dólares 1 año incluido 60 días de evaluación Tiempo de ejecución separado ($) Especificaciones. barcode Desarrollador Citaciones Incluido Edición gratuita (limitada) Añadido ($) NETCODE con 0 dólares Comunidad sólo Todo lleno ✅ Free Cuaderno con 0 dólares Comunidad sólo Todo lleno Libre : Hidden cost factors to consider Las herramientas requieren separados Las licencias para la producción, la licencia de desarrollo sola no cubre el envío de su aplicación. Esto es inusual y puede aumentar significativamente el coste total de las implementaciones de múltiples servidores. Despliegue El precio basado en el consumo de Dynamsoft hace que el presupuesto sea impredecible para aplicaciones con volúmenes de escaneo de códigos de barras variables.Un sistema de gestión de almacenes que procesa 10.000 escaneos durante los picos de vacaciones pero 500 durante los meses lentos verá facturas muy diferentes. La licencia de comunidad gratuita de Syncfusion tiene requisitos de elegibilidad estrictos (capacidad de ingresos de 1 millón de dólares, límite de desarrolladores de 5 millones, límite de empleados de 10 millones). Las bibliotecas de código abierto (ZXing.Net, BarcodeLib, QRCoder, NetBarcode) cargan sin costo de licencia, pero también sin SLA. Si un error crítico bloquea su despliegue de producción en una tarde de viernes, usted está solo hasta que un miembro de la comunidad decida revisar su problema de GitHub. Coste total de la propiedad: Más allá del precio de la etiqueta License fees are the visible cost. Integration effort, maintenance burden, and operational risk are the invisible costs that often dominate the total. Here is how to think about TCO for different library categories. : $0 costo de licencia. Pero factor en: 5-15 horas de trabajo de integración adicional para montar una tubería de imagen (ZXing.Net), tiempo de respuesta garantizado cero para los errores, y el riesgo de que un único mantenedor abandone el proyecto. Para una startup construyendo un MVP, estos compromisos suelen ser aceptables. Para una empresa desplegando a la producción, el cálculo a menudo gira, una licencia comercial de $749 que ahorra 20 horas de tiempo de desarrollador a $100 / hora ya se ha pagado por sí misma. Open-source (ZXing.Net, BarcodeLib, QRCoder) : $749-$979 por desarrollador con un año de soporte y actualizaciones. La licencia permanente significa que no se requieren pagos continuos, puede seguir utilizando la versión que compró indefinidamente. Las renovaciones de soporte para los años posteriores son opcionales. El coste total para un equipo de 3 personas durante 3 años varía de aproximadamente $2,250 a $5,900 dependiendo de si renueva el soporte anualmente. Mid-tier commercial (IronBarcode, Aspose.BarCode) : Costos básicos más altos, además de licencias específicas para la implementación. La separación de las licencias de desarrollo y de implementación de LEADTOOLS significa que los costos se incrementan con la infraestructura. Una licencia de desarrollo de $1.469 es sólo el comienzo; cada servidor de producción puede requerir una licencia adicional de tiempo de ejecución. El modelo de consumo de Dynamsoft relaciona costes con el volumen de uso, que es eficiente para aplicaciones de bajo volumen pero se vuelve caro en escala. Estos modelos se adaptan a organizaciones grandes con equipos de adquisición dedicados pero crean fricción para equipos más pequeños. Enterprise commercial (LEADTOOLS, Dynamsoft) : Si ya está pagando por la suite, el componente de código de barras es efectivamente gratuito.Si está adoptando la suite únicamente para la funcionalidad de código de barras, la sobrecarga, dependencias de paquetes, registro de manipuladores, infraestructura de licencia, es desproporcionada al valor. Suite components (Syncfusion, Spire) Preguntas frecuentes What is the best free barcode library for .NET? Depende de lo que necesites. Sólo para la generación de código QR, QRCoder es invencible, 15M+ descargas, cero dependencias, MIT licenciado. Para la generación de código de barras 1D, BarcodeLib es la opción gratuita más popular. Para la capacidad de leer y escribir a cero costo, ZXing.Net es la única opción, pero espera invertir tiempo adicional en el desarrollo alrededor de su tubería de imagen. Can I read barcodes from PDF documents? Sólo unas pocas bibliotecas soportan esto nativamente. IronBarcode lee códigos de barras de páginas PDF sin requerir una biblioteca PDF separada. Aspose.BarCode puede leer de PDF cuando se combina con Aspose.PDF. VintaSoft soporta la lectura de PDF a través de su pila de imagen. Con ZXing.Net, necesitaría renderizar páginas PDF a imágenes primero usando una biblioteca separada como PDFium, luego pasar esas imágenes a ZXing para la lectura. How do I generate a barcode in C# with just one line of code? IronBarcode: BarcodeWriter.CreateBarcode("data", BarcodeWriterEncoding.Code128).SaveAsPng("out.png"); Esto genera, codifica y guarda en una sola llamada en cadena. Which library works best with .NET MAUI for mobile scanning? IronBarcode soporta los objetivos de .NET MAUI para iOS y Android. Dynamsoft tiene un SDK dedicado de MAUI para escaneo basado en la cámara en tiempo real. Syncfusion ofrece un código de barras MAUI ZXing.Net.Mobile existe pero se dirige al marco Xamarin más antiguo, no al MAUI moderno. Generador Is ZXing.Net still actively maintained? Sí, pero el ritmo de desarrollo se ha desacelerado. La biblioteca recibe actualizaciones, pero las nuevas características y adiciones de formato son poco frecuentes en comparación con las alternativas comerciales. La base de código principal es estable y continúa trabajando en nuevas versiones de .NET, lo que es suficiente para muchos proyectos. Sin embargo, el paquete específico para móviles (ZXing.Net.Mobile) se dirige a Xamarin en lugar de .NET MAUI, lo que lo hace cada vez más datado para el desarrollo móvil. Which barcode formats are used most in retail and logistics? Retail se basa en EAN-13, UPC-A y GS1-128 para la identificación de productos y el seguimiento de la cadena de suministro. los códigos QR son dominantes en los mercados asiáticos para pagos móviles y marketing. Las operaciones de logística utilizan el Código 128 para etiquetas de envío, PDF417 para documentos de identificación gubernamental y de transporte, y GS1 DataBar para productos frescos y cupones. How do I handle damaged or low-quality barcode images? La preprocesamiento de imágenes es la respuesta, y es el mayor diferenciador entre las bibliotecas para aplicaciones del mundo real. Las bibliotecas con preprocesamiento integrado (IronBarcode, Dynamsoft, LEADTOOLS) aplican automáticamente el aclaramiento, la corrección de contraste, el deskewing y la reducción del ruido antes de intentar decodificar. Con ZXing.Net u otras bibliotecas que carecen de preprocesamiento, necesitarías implementar estas correcciones tú mismo usando una biblioteca de imágenes como SkiaSharp o ImageSharp, luego pasar la imagen corregida al lector de códigos de barras. IronBarcode informa de 98% + tasas de éxito en códigos de barras dañados o mal impresos utilizando su tubería automática de preprocesamiento. What is the difference between 1D and 2D barcodes, and does my library choice matter? Los códigos de barras 1D (lineales) —Código 128, UPC-A, EAN-13— codifican datos en una sola fila de barras y espacios. Almacenan datos limitados (normalmente 20-25 caracteres) y son leídos por escáneres láser. Los códigos de barras 2D —Código QR, Matriz de Datos, PDF417— codifican datos en dimensiones horizontales y verticales, almacenando cientos a miles de caracteres. Cada biblioteca en esta comparación soporta formatos 1D comunes. El diferenciador es soporte 2D: las bibliotecas de generación única como BarcodeLib y NetBarcode no soportan los formatos 2D en absoluto. Si su proyecto requiere códigos QR, Data Matrix, o PDF417, sus opciones son IronBarc, Z Can I use these libraries in Docker containers on Linux? Sí, pero con advertencias. Cualquier biblioteca que depende de System.Drawing.Common fallará en Linux en .NET 6+ porque Microsoft la hizo solo para Windows. IronBarcode, Aspose, Dynamsoft, y versiones modernas de ZXing.Net han migrado lejos de esta dependencia. BarcodeLib se mudó a SkiaSharp. QRCoder tiene cero dependencias externas. Siempre pruebe su biblioteca elegida en un contenedor de Docker de Linux antes de comprometerse, incluso las bibliotecas que afirman que el soporte cross-platform puede tener casos de rendimiento de fuentes o disponibilidad de codec de imagen. Elegir su biblioteca: recomendaciones finales Después de evaluar todas las 12 bibliotecas en calidad de código, diseño de API, soporte de formato, compatibilidad de plataforma y costo, aquí están nuestras recomendaciones organizadas por lo que está construyendo. Comience con ZXing.Net si necesita capacidad de lectura, o BarcodeLib + QRCoder si sólo necesita generación. Acepta la rigidez de la API y las características que faltan como el precio de gratis. Building a startup MVP or proof of concept on a zero budget? IronBarcode ofrece el mayor equilibrio entre la simplicidad de la API, la cobertura de formatos, el soporte cross-platform y el precio.Trabajará todo el proceso de generación, reconocimiento, preprocesamiento, lectura de PDF en un solo paquete sin requerir bibliotecas de imagen adicionales. . Building a production application that reads and writes barcodes? Comenzar requiere una instalación de NuGet y una línea de código Permanezca en tu ecosistema. Aspose.BarCode se integra sin problemas con Aspose.PDF, Aspose.Words y el resto de la suite. LEADTOOLS Barcode se integra con sus SDK de imagen, médico y documento. Convertir ecosistemas para un solo componente rara vez tiene sentido arquitectónico. Building within an enterprise Aspose or LEADTOOLS ecosystem? Dynamsoft Barcode Reader está diseñado para el reconocimiento en tiempo real de la fuente de la cámara con la mayor precisión en este espacio. Building a mobile scanning application? Utilice el control Syncfusion Barcode Generator. Ya está en su árbol de dependencia y se reproduce nativamente en su marco de interfaz de usuario. No lo adopte únicamente para necesidades de código de barras, es un control de interfaz de usuario, no una biblioteca de procesamiento de backend. Building a Syncfusion-powered UI that needs to display barcodes? QRCoder. 15 millones de descargas. Zero dependencias. hecho. Need only QR codes? La respuesta correcta depende de si necesita leer, escribir o ambos; qué formatos requiere su industria; dónde implementa; y qué permite su presupuesto. Una nota sobre Future-Proofing El ecosistema .NET evoluciona rápidamente. , .NET 10 está en el horizonte, y System.Drawing.Common está depreciado. Cualquier elección de biblioteca que realice hoy necesita sobrevivir a al menos dos o tres actualizaciones de la versión .NET. Priorice las bibliotecas que demuestren desarrollo activo (lanzamientos mensuales o trimestrales), orientación explícita de la versión .NET (no solo compatibilidad .NET Standard), y un historial de soporte rápido de nuevas características de la plataforma. IronBarcode, Aspose y Dynamsoft todos publican actualizaciones regulares. ZXing.Net y QRCoder se mantienen pero en una cadencia más lenta. BarcodeLib y NetBarcode dependen de mantenedores individuales, lo que introduce un riesgo de factor de bus para proyectos de larga duración. .NET 8 es la versión LTS actual Si está tomando esta decisión para un equipo, documentar sus criterios de evaluación y la razón detrás de su elección.El próximo desarrollador que le pregunte "¿por qué elegimos esta biblioteca?" le agradecerá. Arquitectura de integración Tipo Independientemente de la biblioteca que elija, envuélvela detrás de una interfaz. Un servicio IBarcodeService simple con los métodos Generate() y Read() le permite intercambiar implementaciones sin tocar el código de la aplicación. Esto no es sobreingeniería, es seguro. El mercado de la biblioteca de códigos de barras es competitivo y en evolución. Las bibliotecas se adquieren (LEADTOOLS → Apryse), el mantenimiento se ralentiza (ZXing.Net), y los modelos de precios cambian. Una capa de abstracción significa que su lógica de aplicación está desconectada de las APIs específicas del vendedor. Incluso si nunca cambia de bibliotecas, la abstracción hace que las pruebas de unidades sean trivialmente fáciles — burlarse de la interfaz en lugar de luchar con imágenes de códigos Para la documentación completa sobre , de , y Visite el hub de documentación de IronBarcode. Generar códigos de barras en C# Leer códigos de barras de imágenes y PDFs Creación de códigos QR The Bottom Line: Experiment with Trials and Find Your Fit En última instancia, la mejor biblioteca de códigos de barras para su proyecto dependerá de sus necesidades y restricciones únicas. Ya sea que esté construyendo un MVP de arranque con presupuesto cero, una aplicación de producción con soporte de tubería de lectura/escritura completa o una herramienta de escaneo móvil para feeds de cámara en tiempo real, hay una biblioteca que se ajusta a sus necesidades. Te animamos a aprovechar las pruebas gratuitas ofrecidas por y otras bibliotecas para obtener experiencia práctica y ver cómo funcionan en sus propios proyectos. no dude en experimentar con diferentes opciones para encontrar la que mejor se alinea con el flujo de trabajo y las necesidades técnicas de su equipo. IronBarcode Prueba la mejor biblioteca de códigos de barras para C# – Descarga IronBarcode Trial gratis Al explorar estas bibliotecas y comprender sus puntos fuertes, puede tomar una decisión informada que no solo le ahorrará tiempo, sino que también se asegurará de que esté utilizando una herramienta que apoye sus objetivos a largo plazo, tanto en términos de rendimiento como de mantenimiento.