IRONSOFTWAREHOME
COMPARAR CON OTROS COMPONENTES

Código de barras de red vs IronBarcode: Comparando Generación Solo 1D Contra un Kit de Herramientas de Código de Barras Completo

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

El enum Type de Código de barras de red no tiene una entrada para el código QR. Cuando un proyecto de etiquetas de envío añade el requisito de un código QR en el tercer mes, los desarrolladores recurren a una segunda biblioteca. Esa segunda biblioteca trae consigo su propia interfaz de programación de aplicaciones (API), su propio calendario de lanzamientos y una dependencia compartida de SixLabors.ImageSharp cuya versión puede desfasarse con respecto a la versión que Código de barras de red ya requiere. Esta comparativa examina qué es NetBarcode, dónde encaja bien y dónde IronBarcode cubre las carencias sin añadir un segundo o tercer paquete.

Comprender el código de barras NetBarcode

NetBarcode es una biblioteca de código abierto para la generación de códigos de barras en .NET , publicada bajo la licencia MIT. Fue diseñado para producir imágenes de códigos de barras lineales a partir de datos de cadenas de texto, y cumple ese propósito a la perfección. La biblioteca está dirigida a Code128, EAN-13, Code39, y un puñado de otros formatos 1D, todos expuestos a través de un constructor simple y un pequeño conjunto de métodos de salida. Su dependencia de SixLabors.ImageSharp proporciona la capa de renderizado de imágenes, y desde la versión 1.8 esa dependencia se refleja en la API pública a través del tipo de retorno Image<Rgba32> en GetImage().

NetBarcode no pretende ser un conjunto de herramientas de código de barras de uso general. No tiene capacidad de lectura ni admite formatos 2D. Se trata de decisiones deliberadas sobre el alcance del proyecto. La biblioteca es ideal para aplicaciones que solo necesitan códigos de barras 1D, y su licencia MIT facilita su adopción en entornos de código abierto.

Características arquitectónicas clave:

  • Licencia MIT: La biblioteca en sí tiene licencia MIT, aunque su dependencia SixLabors.ImageSharp tiene una licencia comercial dividida que se aplica a partir de un umbral de ingresos.
  • Diseño solo 1D: El enum Type define 11 valores a través de 8 familias de simbología lineal; no hay entradas 2D, y tampoco hay entradas UPC-A, UPC-E, ITF o MSI
  • Dependencia de SixLabors.ImageSharp: El renderizado de imágenes se delega a ImageSharp, y desde v1.8 el método GetImage() devuelve Image<Rgba32>, exponiendo el tipo de ImageSharp directamente en la API pública
  • API basada en constructores: Los códigos de barras se crean con new Barcode(data, Type.X) y se guardan o recuperan con SaveImageFile() o GetImage()
  • No hay API de lectura: Código de barras de red solo se genera; no existe ningún método o clase para descodificar imágenes de códigos de barras
  • Sin procesamiento por lotes: Cada código de barras es una llamada al constructor independiente; no built-in enumeration or batch pipeline

El límite de diseño de enumeración de tipos

El enum Type es la lista autorizada de lo que Código de barras de red puede generar. Al inspeccionarla se revela el alcance de la biblioteca:

// Código de barras de red Type enum — complete list as of v1.8
public enum Type
{
    Codabar,
    Code11,
    Code128,
    Code128A,
    Code128B,
    Code128C,
    Code39,
    Code39E,
    Code93,
    EAN13,
    EAN8
}

// These entries do not exist — attempting to use them produces a CS0117 compile error:
// Type.QRCode      — does not exist
// Type.DataMatrix  — does not exist
// Type.PDF417      — does not exist
// Type.Aztec       — does not exist
// Type.UPCA        — does not exist
// Type.UPCE        — does not exist
// Type.ITF         — does not exist
// Type.MSI         — does not exist
C#

El enumerador tiene once entradas a través de ocho familias de simbología lineal, y eso refleja el alcance pretendido de la biblioteca. Cualquier aplicación que requiera códigos QR, DataMatrix, PDF417, Aztec, UPC-A, UPC-E, ITF o MSI debe obtener un paquete separado para proporcionar esos formatos.

Entendiendo IronBarcode

IronBarcode es una biblioteca comercial de códigos de barras .NET que abarca tanto la generación como la lectura en un solo paquete. Está desarrollado y mantenido por Iron Software , con actualizaciones periódicas dirigidas a las versiones actuales de .NET . La superficie estática de la biblioteca está diseñada para que cambiar de un formato de código de barras a otro solo requiera cambiar una constante — la misma llamada BarcodeWriter.CreateBarcode que genera Code128 también genera códigos QR, DataMatrix, PDF417y Aztec.

IronBarcode maneja la lectura de códigos de barras a través de la clase BarcodeReader, que acepta archivos de imagen y documentos PDF y devuelve resultados decodificados con identificación de formato. Esto significa que la generación y la lectura comparten una única dependencia, una única licencia y un único conjunto de notas de la versión que deben seguirse.

Características clave:

  • Generación y lectura unificadas: Tanto BarcodeWriter como BarcodeReader están incluidos en un solo paquete NuGet
  • Más de 50 formatos compatibles: los formatos 1D incluyen todos los equivalentes de NetBarcode; Los formatos 2D incluyen código QR, DataMatrix, PDF417, azteca y otros.
  • API de cadena fluida: BarcodeWriter.CreateBarcode(data, encoding) devuelve un objeto GeneratedBarcode con métodos de salida que incluyen SaveAsPng(), SaveAsJpeg(), ToPngBinaryData() y sobrecargas basadas en flujo
  • Sin dependencia de ImageSharp: la representación de imágenes de IronBarcode es autónoma; No se introduce ninguna dependencia transitiva de SixLabors.
  • Compatibilidad con PDF: La API de lectura acepta archivos .pdf directamente además de formatos de imagen
  • Licencia comercial: Se requiere una clave de licencia; el modo de prueba está disponible y elimina las marcas de agua tras la compra

Comparación de características

CaracterísticaCódigo de barras de redIronBarcode
Generación de códigos de barras 1D
Generación de códigos de barras 2DNo
Lectura de códigos de barrasNo
Compatibilidad con PDFNo
Simbologías totales11 valores de enumerador / 8 familiasMás de 50
Dependencia de ImageSharpSí (licencia dividida)No
Modelo de licenciaMIT (+ condiciones de ImageSharp)Comercial

Comparación detallada de características

CaracterísticaCódigo de barras de redIronBarcode
Generación
Code128 (plus 128A/B/C), Code39, Code39 Extended, Code93, Code11
EAN-13, EAN-8, Codabar
UPC-A, UPC-E, ITF, MSINo
Código QRNo
Matriz de datosNo
PDF417No
aztecaNo
GS1-128, GS1 DataBarNo
Formatos postales (Correo Inteligente, Royal Mail)No
Salida SVGNo
Lectura
Decodificar imágenes de códigos de barrasNo
Leer desde documentos PDFNo
Detección de múltiples códigos de barrasNo
Detección automática de formatoNo
Diseño de API
Creación basada en constructoresNo (método estático)
Cadena de salida fluidaNo
Soporte para procesamiento por lotesManualIncorporado en
Licencias y dependencias
Licencia de bibliotecaMITComercial
Dependencia de ImageSharpNo
Apoyo comercialComunidadProfesional

Cobertura de formato

Enfoque de NetBarcode

NetBarcode proporciona 11 valores de enum de código de barras lineal a través de 8 familias de simbología a través del enum Type. Dentro de ese ámbito, la selección del formato es sencilla: basta con pasar el miembro de enumeración apropiado al constructor. El límite es igualmente claro: intentar utilizar un formato fuera de la enumeración produce un error de compilación.

// Código de barras de red — formats that compile and produce output
using NetBarcode;

var code128 = new Barcode("12345678901234", Type.Code128);
code128.SaveImageFile("shipping.png");

var ean13 = new Barcode("5901234123457", Type.EAN13);
ean13.SaveImageFile("product.png");

// Código de barras de red — formats that produce CS0117 compile errors
// var qr     = new Barcode("data", Type.QRCode);     // error CS0117
// var dm     = new Barcode("data", Type.DataMatrix);  // error CS0117
// var p417   = new Barcode("data", Type.PDF417);      // error CS0117
// var aztec  = new Barcode("data", Type.Aztec);       // error CS0117
// var upca   = new Barcode("data", Type.UPCA);        // error CS0117
// var itf    = new Barcode("data", Type.ITF);         // error CS0117
C#

Entre los sectores donde este límite se convierte en una restricción se incluyen el seguimiento farmacéutico (DataMatrix es obligatorio según las normativas de códigos de barras 2D de la FDA), las tarjetas de embarque aéreas (Aztec), los manifiestos logísticos (PDF417) y el marketing móvil (código QR). Cada uno de estos requisitos descarta a Código de barras de red como solución independiente.

Enfoque IronBarcode

IronBarcode expone todos los formatos compatibles a través del mismo método BarcodeWriter.CreateBarcode. La superficie de la API no cambia al pasar de un formato 1D a un formato 2D — solo la constante BarcodeEncoding difiere.

using IronBarCode;

// 1D formats — identical API to the 2D examples below
BarcodeWriter.CreateBarcode("12345678901234", BarcodeEncoding.Code128)
    .SaveAsPng("shipping.png");

BarcodeWriter.CreateBarcode("5901234123457", BarcodeEncoding.EAN13)
    .SaveAsPng("product.png");

// 2D formats — same method, different encoding constant
BarcodeWriter.CreateBarcode("https://example.com", BarcodeEncoding.QRCode)
    .SaveAsPng("qr.png");

BarcodeWriter.CreateBarcode("01034531200000111719112510ABCD1234", BarcodeEncoding.DataMatrix)
    .SaveAsPng("pharma-label.png");

BarcodeWriter.CreateBarcode("M1DOE/JOHN MR ABC123 JFKLHR 0012 123Y015A0001 100", BarcodeEncoding.Aztec)
    .SaveAsPng("boarding-pass.png");

La lista completa de constantes compatibles está disponible en la referencia de formatos de código de barras compatibles , que abarca todos los formatos de generación de códigos de barras 2D junto con el conjunto completo de 1D.

Diseño de API de generación

Enfoque de NetBarcode

El modelo de generación de Código de barras de red se basa en un constructor. Se instancia un objeto Barcode con la cadena de datos y un valor de enum Type. La salida se guarda directamente con SaveImageFile() o se recupera como un Image<Rgba32> a través de GetImage(). Desde la versión 1.8, el tipo de retorno de GetImage() es el tipo de SixLabors.ImageSharp, lo que significa que cualquier código que almacene o procese el valor de retorno debe importar y trabajar dentro de la API ImageSharp.

using NetBarcode;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;

// Constructor-based creation
var barcode = new Barcode("12345678901234", Type.Code128);

// Save to file — straightforward
barcode.SaveImageFile("code128.png");

// GetImage() returns Image<Rgba32> — ImageSharp import required
Image<Rgba32> image = barcode.GetImage();

// Further processing requires familiarity with the ImageSharp API
using var stream = new MemoryStream();
image.SaveAsPng(stream);
byte[] bytes = stream.ToArray();

El tipo de retorno del método GetImage() vincula el código descendente a la biblioteca ImageSharp. Cualquier método que acepte o almacene el resultado debe declararlo como Image<Rgba32>, introduciendo una dependencia transitiva en el código que llama.

Enfoque IronBarcode

IronBarcode utiliza una cadena fluida. BarcodeWriter.CreateBarcode devuelve un objeto GeneratedBarcode que lleva múltiples métodos de salida. El procesamiento de imágenes es interno; ningún tipo ImageSharp se expone al código que realiza la llamada.

using IronBarCode;

// Fluent generation — save directly to file
BarcodeWriter.CreateBarcode("12345678901234", BarcodeEncoding.Code128)
    .SaveAsPng("code128.png");

// Multiple output options on the same GeneratedBarcode object
var barcode = BarcodeWriter.CreateBarcode("12345678901234", BarcodeEncoding.Code128);
barcode.SaveAsPng("code128.png");
barcode.SaveAsJpeg("code128.jpg");
byte[] bytes = barcode.ToPngBinaryData();

using var stream = new MemoryStream();
barcode.SaveAsPng(stream);

En la documentación de IronBarcode se describen las opciones detalladas para la generación de códigos de barras 1D, incluyendo el ancho, la altura y la configuración de la etiqueta.

Capacidad de lectura

Enfoque de NetBarcode

NetBarcode no tiene API de lectura. No existe ningún método, clase o configuración que decodifique una imagen de código de barras para convertirla de nuevo en su cadena de datos. Se trata de una delimitación deliberada del alcance, no de una omisión pendiente de publicación. Un proyecto que genera códigos de barras con Código de barras de red y posteriormente necesita leerlos —para validar una etiqueta impresa, escanear un envío de devolución o extraer valores de una factura de proveedor— debe introducir una biblioteca independiente para ese fin.

// Código de barras de red — no reading method exists
// The following does not compile because the method does not exist:
// var result = barcode.Read("image.png");  // method does not exist

// The typical workaround requires ZXing.Net as a third-party dependency

La biblioteca ZXing .NET es la adición más común para la lectura junto con NetBarcode, ya que aporta una tercera interfaz API y un tercer paquete para la gestión de versiones, además de Código de barras de red y cualquier biblioteca 2D ya añadida para códigos QR.

Enfoque IronBarcode

IronBarcode incluye BarcodeReader en el mismo paquete que BarcodeWriter. La API de lectura acepta archivos de imagen y documentos PDF, y devuelve una colección de resultados decodificados, cada uno con el valor del código de barras, el tipo de formato y el número de página si la lectura se realiza desde un PDF.

using IronBarCode;

// Read barcodes from an image file
var imageResults = BarcodeReader.Read("shipping-label.png");
foreach (var r in imageResults)
{
    Console.WriteLine($"{r.Format}: {r.Value}");
}

// Read barcodes from a PDF document — no additional library required
var pdfResults = BarcodeReader.Read("invoice.pdf");
foreach (var r in pdfResults)
{
    Console.WriteLine($"Page {r.PageNumber}: {r.Value}");
}

La guía para leer códigos de barras a partir de imágenes abarca opciones como el ajuste de velocidad, la detección de múltiples códigos de barras y la corrección de imágenes disponibles en la API de lectura.

Consideraciones sobre dependencias y licencias

Código de barras de red e ImageSharp

NetBarcode tiene licencia MIT. La biblioteca SixLabors.ImageSharp de la que depende utiliza un modelo diferente: es gratuita para proyectos de código abierto y para empresas con ingresos brutos anuales inferiores a un umbral definido, pero se requiere una licencia comercial por encima de ese umbral. Esta división se aplica independientemente de si ImageSharp está listado explícitamente en el .csproj de un proyecto o llega transitivamente a través de NetBarcode.

<!-- This single reference pulls in SixLabors.ImageSharp and SixLabors.Fonts
     under their respective split licences. NuGet does not surface the
     commercial licence condition during package installation. -->
<PackageReference Include="NetBarcode" Version="1.8.3" />
XML

Para una empresa minorista o de logística que procesa códigos de barras a gran escala, el principal caso de uso al que se dirige NetBarcode, los ingresos anuales suelen estar por encima del umbral a partir del cual se aplica la licencia comercial de ImageSharp. Una auditoría de cumplimiento puede revelar esta obligación integrada en el árbol de paquetes.

El lanzamiento v1.8 introdujo una consecuencia adicional de la dependencia de ImageSharp: el tipo de retorno de GetImage() cambió de una representación interna a SixLabors.ImageSharp.Image<Rgba32>. El código existente que llamó GetImage() sin tipificación explícita se rompió en tiempo de compilación, y se hicieron necesarias nuevas directivas using para SixLabors.ImageSharp y SixLabors.ImageSharp.PixelFormats. Cuando la API de ImageSharp evolucione en futuras versiones, la API pública de Código de barras de red se verá afectada a su vez.

IronBarcode

IronBarcode no tiene ninguna dependencia de SixLabors.ImageSharp. Sus condiciones de licencia se establecen directamente en la página de licencias de IronBarcode , sin umbral mínimo ni obligación comercial transitiva. Hay disponible una clave de prueba para su evaluación; Las licencias adquiridas eliminan la marca de agua de la versión de prueba de los resultados generados.

Referencia de mapeo de API

Código de barras de redIronBarcodeNotas
new Barcode(data, Type.Code128)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128)Constructor → método estático
new Barcode(data, Type.Code128A/B/C)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128)IronBarcode selecciona automáticamente el subconjunto
new Barcode(data, Type.EAN13)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.EAN13)Mapeo directo
new Barcode(data, Type.EAN8)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.EAN8)Mapeo directo
new Barcode(data, Type.Code39)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code39)Mapeo directo
new Barcode(data, Type.Code39E)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code39Extended)Mapeo directo
new Barcode(data, Type.Code93)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code93)Mapeo directo
new Barcode(data, Type.Code11)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code11)Mapeo directo
new Barcode(data, Type.Codabar)BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Codabar)Mapeo directo
barcode.SaveImageFile("x.png").SaveAsPng("x.png")renombrar método
barcode.SaveImageFile("x.jpg").SaveAsJpeg("x.jpg")renombrar método
barcode.GetImage()Image<Rgba32>.ToPngBinaryData() o .SaveAsPng()No se muestra ningún tipo ImageSharp
No Type.UPCA / UPCE / ITF / MSIBarcodeEncoding.UPCA / UPCE / ITF / MSINueva capacidad
No Type.QRCodeBarcodeEncoding.QRCodeNueva capacidad
No Type.DataMatrixBarcodeEncoding.DataMatrixNueva capacidad
No Type.PDF417BarcodeEncoding.PDF417Nueva capacidad
No Type.AztecBarcodeEncoding.AztecNueva capacidad
No se puede leer la APIBarcodeReader.Read(path)Nueva capacidad
using NetBarcode;using IronBarCode;Reemplazo de espacio de nombres
using SixLabors.ImageSharp;EliminarYa no es necesario

La referencia completa del formato está disponible en la documentación de formatos de código de barras compatibles .

Cuando los equipos consideran pasar de Código de barras de red a IronBarcode

Requisitos de código QR y formato 2D

El motivo más frecuente para evaluar una alternativa a Código de barras de red es un nuevo requisito para los códigos QR. Las aplicaciones que comienzan con la generación de códigos de barras 1D para etiquetas de venta minorista o manifiestos de envío suelen recibir un requisito posterior para códigos QR: enlaces sin contacto, enlaces directos a aplicaciones móviles, campañas de marketing. Debido a que el enum Type no tiene una entrada QR, este requisito no se puede cumplir dentro de NetBarcode. Los equipos que añaden una biblioteca de códigos QR independiente para solucionar esta deficiencia se enfrentan a una segunda evaluación cuando se requiere Matriz de datos para una integración farmacéutica, o PDF417para un transportista logístico que lo exige en las etiquetas de envío.

La lectura de códigos de barras se vuelve necesaria.

Algunos proyectos comienzan con la generación pura y posteriormente añaden un requisito de validación o procesamiento de documentos: confirmar que un código de barras impreso coincide con sus datos de origen, extraer valores de códigos de barras de las facturas de proveedores entrantes o escanear etiquetas de envío de devolución. Código de barras de red no proporciona ninguna ruta para esto. La incorporación de ZXing .NET o una biblioteca de lectura comparable introduce una tercera API que aprender y mantener en el mismo código base que ya contiene Código de barras de red y una biblioteca QR. Los proyectos que prevén necesidades de lectura, incluso en una fase futura, suelen encontrar más eficiente seleccionar una biblioteca que satisfaga ambas necesidades desde el principio.

Auditoría de licencias comerciales de ImageSharp

En ocasiones, las revisiones legales y de cumplimiento de las dependencias de terceros sacan a la luz la condición de licencia comercial de SixLabors.ImageSharp integrada en el árbol de paquetes de NetBarcode. Para las empresas cuyos ingresos brutos anuales superen el umbral, la obligación se aplica tanto si ImageSharp se seleccionó deliberadamente como si se obtuvo de forma indirecta a través de NetBarcode. Los equipos que descubren esto durante una auditoría, en lugar de antes de la adopción, se enfrentan a una corrección retroactiva en lugar de una migración planificada. Evaluar la licencia de dependencia antes de comenzar un proyecto es la opción más limpia.

Reducción de la complejidad de múltiples bibliotecas

Los equipos que han acumulado Código de barras de red para la generación 1D, una biblioteca específica para códigos QR para la salida 2D y ZXing .NET para la lectura, se encuentran con la necesidad de mantener la compatibilidad de versiones en tres paquetes diferentes. Cada ciclo de actualización requiere comprobar si las tres bibliotecas coinciden en su versión compartida de ImageSharp. Cada nuevo desarrollador del proyecto se encuentra con tres API diferentes para lo que conceptualmente es una sola cuestión. La consolidación en una única biblioteca de códigos de barras simplifica la incorporación de nuevos usuarios, reduce la superficie de conflicto de versiones y concentra el mantenimiento en un único ciclo de lanzamiento.

Consideraciones comunes sobre la migración

Intercambio de paquetes y limpieza de dependencias transitivas

Eliminar Código de barras de red con dotnet remove package NetBarcode es el primer paso. El paquete SixLabors.ImageSharp puede reaparecer en la árbol de dependencias si otros paquetes en el proyecto también lo incorporan de forma transitoria. Después de la eliminación, inspeccione la lista de paquetes restaurados con dotnet list package --include-transitive para confirmar si ImageSharp aún está presente y si su condición de licencia comercial todavía se aplica.

Sustitución del tipo de retorno de GetImage()

Cualquier código que almacenó el resultado de GetImage() como Image<Rgba32> debe ser actualizado. El tipo ImageSharp no tiene un equivalente directo en IronBarcode; La sustitución depende de cómo se haya utilizado la imagen posteriormente. El código que guardó la imagen en un flujo puede ser reemplazado con .SaveAsPng(stream) directamente en el objeto GeneratedBarcode. El código que recuperó bytes crudos puede usar .ToPngBinaryData(). El código que realice manipulaciones adicionales de ImageSharp en la imagen devuelta requerirá que esas operaciones se evalúen individualmente.

Actualización del espacio de nombres

Los archivos que importaron using NetBarcode;, using SixLabors.ImageSharp;, using SixLabors.ImageSharp.PixelFormats; o using SixLabors.Fonts; necesitan que esas directivas sean reemplazadas con using IronBarCode;. Una búsqueda en todo el proyecto de estas declaraciones using identifica todos los archivos que requieren atención antes de intentar la compilación.

Funcionalidades adicionales de IronBarcode

Además de las funciones básicas de generación y lectura que se tratan en esta comparación, IronBarcode ofrece:

  • Salida de código de barras SVG : Genera imágenes de código de barras en formato vectorial adecuadas para flujos de trabajo de impresión y diseños de etiquetas escalables.
  • Estilo de código de barras : Configure el color de la barra, el color de fondo, la fuente de la anotación, el margen y la rotación en los códigos de barras generados.
  • GS1-128 y GS1 DataBar : Códigos de barras estructurados con identificador de aplicación para el cumplimiento normativo en el sector minorista y la cadena de suministro.
  • Formatos postales : Intelligent Mail, Royal Mail y otras simbologías postales para aplicaciones de envío de correo.
  • Extracción de códigos de barras de PDF : Lea códigos de barras directamente de documentos PDF de varias páginas sin necesidad de una biblioteca de PDF independiente.
  • Generación por lotes : Procese colecciones de datos de códigos de barras de manera eficiente dentro de una única canalización.
  • MAUI y plataformas móviles : IronBarcode admite aplicaciones .NET MAUI para flujos de trabajo de códigos de barras multiplataforma para dispositivos móviles y de escritorio.

Compatibilidad con .NET y preparación para el futuro

IronBarcode está dirigido a las versiones actuales de .NET y mantiene la compatibilidad con .NET Standard para proyectos que aún no han migrado a .NET moderno. El calendario regular de lanzamientos de Iron Software alinea las actualizaciones de compatibilidad con cada lanzamiento importante de .NET. Código de barras de red está diseñado para .NET Standard 2.0 y funciona en los entornos de ejecución actuales a través de esa capa de compatibilidad, aunque la frecuencia de actualización de la biblioteca y el conjunto de formatos 2D están determinados por su ámbito de diseño.

Conclusión

NetBarcode e IronBarcode representan posiciones diferentes en el espectro del alcance de las bibliotecas de códigos de barras. Código de barras de red es una implementación enfocada y limpia de generación de códigos de barras 1D: once valores enum a través de ocho familias de simbología lineal, una API de constructor simple y una licencia MIT que mantiene la adopción sin fricción para proyectos de código abierto dentro del umbral de ingresos de ImageSharp. IronBarcode es un conjunto de herramientas más amplio que abarca la generación en más de 50 formatos, la lectura de imágenes y archivos PDF, y una API fluida que trata los formatos 1D y 2D de forma idéntica.

Para proyectos donde los requisitos están realmente limitados a la generación de códigos de barras lineales dentro del conjunto compatible — un sistema de punto de venta que produce códigos EAN-13 para escáneres minoristas europeos, o una herramienta interna con una vida útil fija y corta — Código de barras de red ofrece lo necesario sin introducir una dependencia comercial. La biblioteca está bien construida dentro de su alcance, y ese alcance es explícito desde la primera mirada al enum Type.

Para proyectos en los que el alcance del formato pueda ampliarse, en los que eventualmente se necesite la lectura o en los que exista una preocupación por la revisión de cumplimiento de la dependencia transitiva de ImageSharp, IronBarcode aborda los tres aspectos a través de un único paquete. Los equipos que comienzan con Código de barras de red para la generación 1D y luego agregan QRCoder para 2D y ZXing .NET para la lectura acumulan tres obligaciones de mantenimiento de biblioteca separadas; IronBarcode los consolida en uno solo.

La elección se deriva directamente de los requisitos del proyecto. Si los once valores enum 1D de Código de barras de red a través de ocho familias de simbología y sin capacidad de lectura coinciden con la especificación precisamente, Código de barras de red es una selección técnicamente sólida. Si la especificación incluye algún formato 2D, algún flujo de trabajo de lectura o alguna inquietud sobre las condiciones de la licencia de ImageSharp, IronBarcode es la respuesta más completa.

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