Cómo crear BarCodes 1D y Lineales

This article was translated from English: Does it need improvement?
Translated
View the article in English

Cuando se trata de transmitir información, los códigos de barras lineales siguen siendo el estándar de la industria por una razón. Son rápidas, fiables y funcionan con casi cualquier escáner. Además, dado que estos códigos de barras no requieren un procesamiento de imágenes complejo, son la mejor opción para entornos de alta velocidad, como las líneas de caja de los comercios y las cintas transportadoras.

El principal reto es elegir el formato correcto para sus necesidades específicas. Es posible que necesite la alta densidad de datos del Código 128 para una etiqueta de envío, el tamaño compacto del EAN-8 para productos pequeños o el formato estricto de un código de barras Intelligent Mail para servicios postales. Con IronBarcode, puede generar con confianza todos estos formatos, sabiendo que su proceso es eficiente y fiable.

En esta guía práctica, explicaremos cómo generar los formatos 1D más importantes y sus casos de uso cotidianos con IronBarcode.

Comience a usar IronBarcode

Comience a usar IronBarcode en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer


Crear BarCodes 1D y Lineales

Los códigos de barras unidimensionales lineales constan de líneas y espacios de ancho variable que almacenan los datos horizontalmente. En cambio, los códigos de barras bidimensionales, como los códigos QR, utilizan una cuadrícula de cuadrados para contener información en dos dimensiones. Mientras que los códigos bidimensionales pueden contener muchos más datos, como URL o tarjetas de contacto, los códigos de barras unidimensionales se limitan a cadenas cortas de caracteres alfanuméricos.

Sin embargo, esta simplicidad permite escanear más rápidamente los códigos de barras unidimensionales. Las hace universalmente compatibles con los escáneres láser estándar, lo que las convierte en la opción preferida para entornos minoristas y logísticos de alta velocidad.

Exploremos los formatos más compatibles y cómo crearlos con IronBarcode, y repasemos los valores y escenarios comunes para saber cuándo utilizar cada tipo.

Código-128

Los códigos de barras Código 128 se utilizan habitualmente para logística interna y etiquetas de envío. Admite la gama completa de 128 caracteres ASCII, lo que lo hace muy eficiente a la hora de comprimir números estándar y texto en inglés en un espacio reducido.

Sin embargo, no permite de forma nativa Unicode ni caracteres no latinos sin extensiones adicionales. No admite caracteres complejos de idiomas como el chino o el árabe y, en su lugar, malinterpretaría los datos, lo que daría lugar a una salida incorrecta.

Código

IronBarcode facilita la generación de código 128: pasamos BarcodeEncoding.Code128 como segundo parámetro al llamar al método Create y lo exportamos como imagen.

:path=/static-assets/barcode/content-code-examples/how-to/create-code-128-barcode.cs
using IronBarCode;

// Specify Code 128 Format
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.Code128);

// Add barcode value text below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save it as JPG
barcode.SaveAsJpeg("code128-sample.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Ejemplo de Code-128

GSI-128

GS1-128 es un formato de datos adicional que se aplica sobre el Código 128. La principal ventaja de GS1-128 es que permite que los datos se interpreten de forma coherente en todo el mundo, eliminando las interpretaciones erróneas y la ambigüedad de los datos.

Sin embargo, debido a su estricto formato, la omisión de un carácter de control oculto o la longitud incorrecta de un campo harán que el código de barras no sea conforme, lo que dificultará su creación manual.

Formatoo GSI-128

Un escáner de código de barras también utiliza IA (Application Identifier), un prefijo numérico que identifica la información en el código del producto.

GS1-128 sigue una estructura de datos en cuatro partes, como se muestra a continuación:

(Prefijo numérico 01) GTIN (Número Global de Artículo Comercial): La primera parte de la estructura es el Número Global de Artículo Comercial. Se trata del identificador único del producto que identifica de qué producto se trata. Debe contener exactamente 14 dígitos numéricos. Si el código del producto es más corto, debe rellenar el valor con ceros a la izquierda. Por ejemplo, si el código de su producto es un número de 12 dígitos como 123456789012, deberá añadir dos ceros delante para cumplir el requisito (por ejemplo, 00123456789012).

(Prefijo numérico 10) Lote: El prefijo numérico 10 identifica el número de lote o partida del producto en el código GS1-128. El formato puede variar de 1 a 20 caracteres alfanuméricos. Si coloca el número de lote en medio del código de barras, asegúrese de colocar FNC1 como carácter separador para que el escáner sepa dónde termina el número de lote y dónde empieza el siguiente campo. Si el número de lote está al final del código de barras, el separador no es necesario.

(Prefijo numérico 17) Fecha de caducidad: Tras el prefijo numérico 17, sigue la fecha de caducidad del producto. El formato está fijado en seis dígitos. Sigue estrictamente la regla AAMMDD; por ejemplo, 251231 sería 31 de diciembre de 2025. Tenga en cuenta que no utiliza años de 4 dígitos y asume automáticamente el siglo basándose en una ventana deslizante.

(Prefijo numérico 21) Número de serie: Tras el prefijo numérico 21, sigue el número de serie del producto. Identifica la unidad individual única. El formato es de longitud variable, con 1-20 caracteres alfanuméricos.

Por favor notaTenga en cuenta que en el código del producto sólo se necesita siempre el anclaje (por ejemplo, GTIN); los atributos lote, caducidad y nd serie son opcionales para el código de barras.@@--CIERRE DE SOPORTE--@@

[{w:(Aunque sólo se requiere el GTIN, algunos minoristas pueden tener sus propias directrices de cumplimiento para el código de barras. Por favor, asegúrese de comprobar la información pertinente por su parte al crear el código de barras. @@--CIERRE DE SOPORTE--@@

Tabla de formatos GSI

IA Nombre Tipo de datos Longitud ¿Fijo o variable?
01 GTIN (Número Global de Artículo Comercial) Numérico 14 cifras Fixed
10 Número de lote Alfanumérico 1-20 caracteres Variable
(Necesita delimitador FNC1 si no está al final)
17 Fecha de caducidad Numérico (Fecha) 6 dígitos
(AAMMDD)
Fixed
21 Número de serie Alfanumérico 1-20 caracteres Variable
(Necesita delimitador FNC1 si no está al final)

Código

Generar un código de barras GS1-128 es relativamente fácil; los desarrolladores sólo tienen que pasar BarcodeEncoding.Code128GS1 como segundo parámetro al llamar a Create.

El ejemplo siguiente muestra un valor completo conforme a GS1-128 con los cuatro atributos, y lo exporta después como imagen.

Por favor notaTenga en cuenta que los paréntesis son necesarios para cada prefijo numérico como se muestra a continuación, o de lo contrario esa sección específica no sería reconocida como un atributo válido y se omitiría al generar el código de barras final.@@--CIERRE DE SOPORTE--@@

Por favor notaIronBarcode inserta automáticamente el separador FNC1 al crear GSI-128.@@--CIERRE DE SOPORTE--@@

:path=/static-assets/barcode/content-code-examples/how-to/create-gsi-128-barcode.cs
using IronBarCode;

// Valid GS1-128 String: GTIN + Expiry + Batch + Serial Number
string gs1Value = "(01)01234567890128(17)251231(10)BATCH001(21)111111";

// Create the barcode
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(gs1Value, BarcodeEncoding.Code128GS1);

// Display the value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("gsi128-sample.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Ejemplo de salida GS1-128

Solución de problemas

Si su valor de cadena no cumple las normas de GS1-128, IronBarcode lanzará una excepción al ejecutar el código. Compruebe el valor de la cadena consultando la tabla anterior y modifíquelo en consecuencia.

Excepción GS1-128

Código 39

El Código 39 es uno de los primeros estándares disponibles para códigos de barras alfanuméricos, bien conocido por su fiabilidad. Los casos de uso más comunes de los códigos de barras Código 39 son los sectores de la automoción y la defensa.

Sin embargo, el conjunto de caracteres permitidos para el Código 39 es relativamente pequeño. Solo admite caracteres ingleses en mayúsculas, dígitos y algunos símbolos como /, ., -, etc. No admite caracteres en minúscula en su modo estándar.

Código

Para generar un código de barras Code39, tenemos que pasar BarcodeEncoding.Code39 como segundo parámetro al utilizar el método Create.

He aquí un ejemplo.

:path=/static-assets/barcode/content-code-examples/how-to/create-code-39-barcode.cs
using IronBarCode;

// Specify Code39 Format
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("IRON-1234", BarcodeEncoding.Code39);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("code39.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Ejemplo de salida Code39

Solución de problemas

Excepción Code39

Si el valor de la cadena no se ajusta al estándar Code39, IronBarcode lanzará esta excepción.

[{w:( Aunque el modo ampliado de Code39 admite toda la gama de caracteres ASCII, IronBarcode no admite actualmente la generación de códigos de barras de código ampliado Code39; por el momento sólo se admite la lectura. Para leer Code39 extendido y estándar, consulte aquí@@--CIERRE DE SOPORTE--@@.

Código 93

El Código 93 se diseñó como una versión mejorada del Código 39, utilizado habitualmente en logística y etiquetado de componentes electrónicos, donde el espacio es limitado pero se requieren datos alfanuméricos.

Se acepta toda la gama de caracteres ASCII, así como letras mayúsculas inglesas, dígitos y símbolos. Ofrece mayor densidad que el Código 39.

Código

Para generar un código de barras Código 93, pase BarcodeEncoding.Code93 como segundo parámetro cuando utilice Create. Este es el código de ejemplo

:path=/static-assets/barcode/content-code-examples/how-to/create-code-93-barcode.cs
using IronBarCode;

// Valid Input: Uppercase A-Z, 0-9, specific symbols
string code93Value = "ELEC-COMP-99";

// Create Code 93
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(code93Value, BarcodeWriterEncoding.Code93);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("code93.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Ejemplo de Code93

CodaBar

Codabar suele utilizarse en situaciones en las que se espera una mala calidad de impresión, ya que es bastante robusto. Como tal, se utiliza ampliamente en escenarios como bancos de sangre y bibliotecas.

El formato de código de barras Codabar es de longitud variable, pero admite un conjunto de caracteres limitado. Solo puede contener dígitos (0-9) y símbolos como (-, $, :, /, ., +). También puede utilizar los caracteres de inicio y fin A, B, C y D para indicar cuándo empieza o termina. Sin embargo, no se pueden poner esos caracteres en la parte central; sólo se permiten al principio o al final.

Código

Para generar un código de barras Codabar, pase BarcodeEncoding.Codabar como segundo parámetro cuando utilice Create. Este es el código de ejemplo

:path=/static-assets/barcode/content-code-examples/how-to/create-codabar-barcode.cs
using IronBarCode;

// Valid Input: Numbers 0-9 and symbols -$:/.+ IronBarcode automatically appends by A, B, C, or D
string codabarValue = "10500200";

// Create Codabar
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(codabarValue, BarcodeWriterEncoding.Codabar);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("codabar.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Ejemplo de Codabar

Solución de problemas

Si el valor de entrada contiene letras, IronBarcode lanzará una excepción indicando que sólo acepta valores numéricos.

Excepción Codabar

Barra de datos

GS1 DataBar (antes RSS-14) es una versión estándar más compacta diseñada para contener el número de identificación del producto.

Al igual que la variante GS1-128, tiene un formato de codificación estricto que los desarrolladores deben respetar. La variante omnidireccional contiene únicamente el atributo de código de producto.

GS1-Formatoo de la barra de datos

(Prefijo numérico-01) GTIN (Número Global de Artículo Comercial) : La primera y única parte de la estructura es el Global Trade Item Number. Este es el identificador único del producto. Debe contener exactamente 14 dígitos numéricos.

[{w:(El estándar "GS1 DataBar Omnidirectional" sólo puede contener el GTIN (01). Para incluir las partes adicionales a continuación, debe utilizar GS1 DataBar Expanded.@@--CIERRE DE SOPORTE--@@

Código

Para generar un código de barras GS1 DataBar, pase BarcodeEncoding.DataBar como segundo parámetro cuando utilice Create. Este es el código de ejemplo

:path=/static-assets/barcode/content-code-examples/how-to/create-gs1-databar-barcode.cs
using IronBarCode;

// Valid Input: Exactly 14 digits (GTIN). IronBarcode will calculate and append the correct check digit.
string databarValue = "0123456789012";

// Create GS1 DataBar
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(databarValue, BarcodeWriterEncoding.DataBar);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("databar.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Ejemplo de salida GS1-Databar

EAN-13

EAN-13 es el código de barras estándar utilizado en todo el mundo para identificar productos de consumo, uno de los formatos de código de barras más utilizados.

Sin embargo, el EAN-13 suele obtenerse mediante licencias estrictas. No puede limitarse a generar un número EAN-13 para uso público; debe obtener la licencia de un prefijo de empresa GS1 para asegurarse de que sus códigos de barras son únicos. También es necesario que solo pueda contener 13 dígitos numéricos y que sea numérica.

Además, EAN-13 también tiene su conjunto específico de reglas de formato.

Formatoo EAN-13

Un código de barras EAN-13 consta de cuatro partes, como se muestra a continuación.

Prefijo GS1 (3 primeros dígitos): Identifica la Organización Miembro GS1, normalmente el país donde está registrado el fabricante. Por ejemplo, 000-019 (EE.UU./Canadá - compatible con UPC), 500-509 (Reino Unido), 450-459 (Japón).

Código de fabricante: Código de longitud variable asignado a la empresa por GS1.

Código de producto: Asignado por el fabricante al artículo específico.

Dígito de control (último dígito): Un solo dígito calculado a partir de los 12 primeros mediante un algoritmo de Módulo 10. Asegura que el escáner lee correctamente el código de barras.

[{w:(Los prefijos que empiezan por 2 (concretamente 200-299) están reservados para números de circulación restringida. Por lo tanto, en un entorno de producción, no utilice estos prefijos al generar un código de barras EAN-13.@@--CIERRE DE SOPORTE--@@

Código

Para generar un código de barras EAN-13, pase BarcodeEncoding.EAN13 como segundo parámetro cuando utilice Create. Este es el código de ejemplo

:path=/static-assets/barcode/content-code-examples/how-to/create-ean13-barcode.cs
using IronBarCode;

// Valid Input: 12 digits (library calculates 13th check digit) or full 13 digits.
string ean13Value = "4006381333931";

// Create EAN-13
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(ean13Value, BarcodeWriterEncoding.EAN13);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("ean13.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Ejemplo de salida EAN-13

Solución de problemas

IronBarcode lanzará una excepción para los valores numéricos sólo si hay otros caracteres.

Solución de problemas EAN-13

EAN-8

EAN-8 es la versión condensada del código de barras estándar EAN-13 para minoristas. El principal caso de uso son los productos de consumo de pequeño tamaño, en los que un código de barras de tamaño completo ocuparía demasiado espacio. Los códigos de barras EAN-8 suelen aparecer en artículos como lápices y cosméticos.

A diferencia del Código 128 o el Código 39, el EAN-8 suele tener asignado un prefijo específico en lugar de que los desarrolladores asignen un número arbitrariamente.

Como tal, EAN-8 utiliza un formato estricto de 8 dígitos. Tiene 7 dígitos de datos y exactamente un dígito de control, y es únicamente numérico.

Código

Crear un código EAN-8 es simplemente pasar el valor BarcodeEncoding.EAN8 al segundo parámetro cuando se utiliza Create. A continuación se muestra un ejemplo.

:path=/static-assets/barcode/content-code-examples/how-to/create-ean8-barcode.cs
using IronBarCode;

// Valid Input: 7 digits (library calculates 8th check digit).
string ean8Value = "1234567";

// Create EAN-8
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(ean8Value, BarcodeWriterEncoding.EAN8);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("ean8.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Ejemplo de salida EAN-8

Solución de problemas

Si el valor de entrada contiene 8 o más caracteres numéricos, IronBarcode lanzará una excepción indicando que el requisito de longitud EAN-8 es de 8 caracteres.

Excepción EAN-8

Correo inteligente (IMB)

El código de barras Intelligent Mail Barcode (IMB) es el estándar de USPS para automatizar la clasificación y el seguimiento del correo. A diferencia de los códigos de barras tradicionales, cuya anchura varía, el IMB utiliza barras de altura modulada para codificar los datos. Es obligatorio solicitar descuentos en el precio de automatización de cartas y pisos. El código de barras IMB solo admite un conjunto específico de longitudes numéricas; el valor debe ser de 20, 25, 29 o 31 dígitos.

Además, emplea un conjunto específico de prefijos numéricos para definir la información, como se muestra a continuación.

Formatoo de correo inteligente

(2 primeros dígitos) ID del código de barras: La primera parte de la estructura es el identificador del código de barras. Se trata de datos estrictamente numéricos con 2 dígitos. Para la mayoría del correo comercial estándar, este valor es 00.

(3 dígitos siguientes) ID de tipo de servicio (STID): Los 3 dígitos siguientes definen la clase de correo (por ejemplo, primera clase, correo de marketing) y los servicios que solicita (por ejemplo, corrección de dirección, seguimiento). Esto es fundamental para los descuentos postales.

(Próximos 6 o 9 dígitos) Mailer ID (MID): Después del STID, sigue el Mailer ID. Se trata de un número de 6 o 9 dígitos asignado directamente a su empresa por el USPS.

(Próximos 6 o 9 dígitos) Número de serie: Después del ID de Mailer viene el Número de Serie. Esto identifica la pieza de correo individual única.

(Últimos 0, 5, 9 u 11 dígitos) Código de ruta: La parte final de la estructura es el código de ruta, que no es más que el código postal de entrega.

Código

Para generar un código de barras IMB, pasamos BarcodeEncoding.IntelligentMail como segundo parámetro cuando llamamos al método Create. He aquí un ejemplo.

:path=/static-assets/barcode/content-code-examples/how-to/create-imb-barcode.cs
using IronBarCode;

// Valid Input: 20, 25, 29, or 31 digits. 
// Format: Barcode ID(2) + Service(3) + Mailer ID(6/9) + Serial(9/6) + Routing Zip(0/5/9/11)
string imbValue = "00270123456200800001";

// Create Intelligent Mail
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(imbValue, BarcodeWriterEncoding.IntelligentMail);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("imb.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Ejemplo de correo inteligente

Solución de problemas

IronBarcode lanzará una excepción indicando que el formato es incorrecto si no se sigue. Por favor, verifique el valor de la cadena a partir del formato anterior y vuelva a intentarlo tras la modificación.

Excepción de correo inteligente

Plessey modificado (MSI)

El MSI es un código de barras que se utiliza habitualmente en las etiquetas de las estanterías de los comercios y en el control de inventario de los almacenes, pero rara vez se encuentra en los productos de consumo.

MSI es un código de barras numérico; como tal, no se permiten letras ni símbolos. La longitud varía, pero el estándar es de unos 10-15 dígitos.

Código

Para generar un código de barras MSI, pasamos BarcodeEncoding.MSI como segundo parámetro cuando llamamos al método Create. He aquí un ejemplo.

:path=/static-assets/barcode/content-code-examples/how-to/create-msi-barcode.cs
using IronBarCode;

// Valid Input: Numeric digits only. Variable length.
string msiValue = "1234567890";

// Create MSI
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(msiValue, BarcodeWriterEncoding.MSI);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("msi.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Ejemplo de salida MSI

UPC-A

UPC-A es el código de barras estándar utilizado en el comercio minorista de Estados Unidos y Canadá. Se trata de un subconjunto de 12 dígitos de la norma EAN-13. Se encuentran con mayor frecuencia en los productos que se venden en los supermercados norteamericanos.

Al igual que el EAN-13, normalmente se asigna en lugar de generarse.

UPC-A contiene exactamente 12 dígitos numéricos y no acepta letras.

Formatoo UPC-A

Carácter del sistema numérico (1): Identifica el tipo de producto (0, 1, 6, 7, 8 normalmente para la venta al por menor estándar; 2 para peso aleatorio, 3 para medicamentos, 5 para cupones).

Código de fabricante (5): Asignado por GS1.

Código de producto (5): Asignado por el fabricante.

Dígito de control (1): Suma de comprobación calculada en módulo 10.

Código

Para generar un código de barras UPC-A, pasamos el BarcodeEncoding.UPCA como segundo parámetro cuando llamamos al método Create. He aquí un ejemplo.

:path=/static-assets/barcode/content-code-examples/how-to/create-upc-a-barcode.cs
using IronBarCode;

// Valid Input: 11 digits (library calculates 12th check digit) or full 12 digits.
string upcaValue = "01234567890";

// Create UPC-A
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(upcaValue, BarcodeWriterEncoding.UPCA);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG 
barcode.SaveAsJpeg("upca.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

UPC-A Ejemplo de salida

Solución de problemas

Como puede ver, IronBarcode arroja un error si el valor numérico proporcionado tiene una longitud superior a 13.

Clase de excepción UPC-A=

UPC-E

UPC-E es la versión compacta del código de barras estándar UPC-A. Está diseñado explícitamente para envases pequeños de venta al por menor, como latas de refrescos, en los que un código de barras UPC-A completo de 12 dígitos sería demasiado grande para escanearlo.

Al igual que el formato UPC-A, es estrictamente numérico y no acepta letras ni símbolos.

Código

Para generar un código de barras UPC-E, pasamos BarcodeEncoding.UPCE como segundo parámetro cuando llamamos al método Create. He aquí un ejemplo.

:path=/static-assets/barcode/content-code-examples/how-to/create-upc-e-barcode.cs
using IronBarCode;

// Valid Input:8 digits or less, which the last digit is a check digit calculated from the first 7 digits. 
// IronBarcode automatically calculates the check digit if only 7 digits are provided.
string upceValue = "0123456";

// Create UPC-E
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(upceValue, BarcodeWriterEncoding.UPCE);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("upce.jpg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Ejemplo de salida UPC-E

Solución de problemas

Como puede ver, IronBarcode lanza un error si el dígito numérico proporcionado es superior a 8.

Solución de problemas de UPC-E

Descripción general de los distintos tipos de códigos de barras 1D

Nombre Formato Uso común Restricciones y dificultades
Code 128 Alfanumérico
Soporta ASCII 128 completo. Longitud variable. Alta densidad.
Logística interna, etiquetas de envío, seguimiento de activos, tarjetas de identificación.
  • No Unicode: No se pueden codificar de forma nativa caracteres especiales (como chinos o Emojis) sin romper la compatibilidad del escáner.
  • Calidad de la impresora: Requiere una alta resolución; una impresión térmica con pocos PPP puede causar problemas de legibilidad.
GS1-128 Estructurado alfanumérico
Código 128 con FNC1 inicial + identificadores de aplicación (por ejemplo, (01)).
Cadena de suministro global (Walmart/Amazon), etiquetas de palés, EDI.
  • Falta FNC1: Debe comenzar con el carácter invisible FNC1 o los escáneres lo leerán como texto sin formato.
  • Paréntesis: No codifique el () alrededor de los IAs; son solo para legibilidad humana.
Code 39 Alfanumérico (Restringido)
Mayúsculas A-Z, 0-9 y -. $ / + % espacio.
Automoción (IAAG), Defensa (LOGMARS), identificaciones industriales heredadas.
  • Sin minúsculas: El modo estándar falla si se introduce "a". El modo extendido lo admite pero requiere una configuración específica del escáner.
  • Baja densidad: Produce códigos de barras muy anchos, no aptos para etiquetas pequeñas.
Code 93 Alfanumérico
Similar al Código 39 pero con mayor densidad.
Electrónica (PCB), Correos de Canadá y fabricación interna.
  • Dígitos de control: Requiere dos dígitos de control obligatorios (C y K). No los calcule manualmente; deje que lo haga la biblioteca.
  • Soporte de escáner: A menudo está desactivado por defecto en los escáneres para evitar conflictos con el Código 39.
Codabar Símbolos + numéricos
0-9 y - $ : /. +. Inicio/Parada: A, B, C, D.
Bancos de sangre, bibliotecas, guías aéreas de FedEx (legado).
  • Lecturas cortas: Propensas a errores cuando un escáner lee un código parcial (por ejemplo, leer "123" de "12345").
  • Sin letras: No se pueden codificar letras de datos, solo A-D como delimitadores.
GS1 DataBar Numérico (14 dígitos)
Codifica sólo GTIN-14. Extremadamente compacto.
Productos a granel (pegatinas de fruta), pequeños cosméticos y viales sanitarios.
  • Sin atributos: La versión estándar Omnidireccional no puede contener datos de Caducidad o Lote (requiere versión Expandida).
  • Strict Input: Debe tener exactamente 14 dígitos.
EAN-13 Numérico (13 dígitos)
País + Fabricante + Producto + Dígito de control.
Punto de venta minorista global (supermercados).
  • Licencia: Requiere un prefijo de empresa GS1 de pago.
  • Prefijos restringidos: Los prefijos 200-299 son para uso exclusivo en tiendas y no funcionarán en la cadena de suministro global.
EAN-8 Numérico (8 Dígitos)
7 Datos + 1 Dígito de Control.
Pequeños envases de venta al por menor (chicles, lápices).
  • Disponibilidad: Difícil de obtener; GS1 sólo los emite si su producto es físicamente demasiado pequeño para EAN-13.
  • Longitud de entrada: Debe tener exactamente 7 u 8 dígitos.
Correo inteligente Numérico (20, 25, 29, 31 Dígitos)
Barras moduladas en altura (4 estados).
Clasificación y automatización del correo de USPS.
  • Longitudes estrictas: La entrada debe coincidir exactamente con los campos de USPS (ID de código de barras, STID, MID, Serial, Zip).
  • STID "234": No utilice este ID de ejemplo en producción; puede provocar el rechazo de correos o la pérdida de descuentos.
MSI (Plessey) Sólo numérico
Longitud variable.
Etiquetas de estanterías de tiendas, contenedores de almacén.
  • Confusión de sumas de comprobación: Admite Mod 10, Mod 11, Mod 1010, etc. Debes saber exactamente cuál espera tu escáner.
  • Fiabilidad: Baja tasa de lectura en comparación con los códigos modernos.
UPC-A Numérico (12 Dígitos)
11 Datos + 1 Dígito de Control.
Punto de venta minorista norteamericano.
  • Región: Principalmente EE.UU./Canadá. Los vendedores de todo el mundo deben utilizar EAN-13.
  • Ceros a la izquierda: Técnicamente, un EAN-13 empieza por 0.
UPC-E Numérico (6 dígitos)
Formatoo comprimido.
Pequeños envases de venta al por menor (latas de refrescos) en EE.UU./Canadá.
  • Reglas de compresión: No puedes simplemente "convertir" cualquier UPC-A. Su número debe tener un patrón específico de ceros para ser compresible.
  • Sistema numérico: Solo admite el sistema numérico 0 o 1.

Preguntas Frecuentes

¿Qué es un código de barras 1D?

Un código de barras 1D, también conocido como código de barras lineal, es una serie de líneas paralelas y espacios de anchura variable que codifican información. Se utilizan habitualmente en el comercio minorista y la logística.

¿Cómo puedo generar códigos de barras 1D con C#?

Puede generar códigos de barras 1D en C# utilizando IronBarcode, que proporciona una API sencilla para crear varios tipos de códigos de barras unidimensionales para sus aplicaciones.

¿Qué tipos de códigos de barras 1D puedo crear con IronBarcode?

Con IronBarcode, puede crear varios tipos de códigos de barras 1D, incluyendo Código 39, Código 128, EAN, UPC, y más.

¿Es posible personalizar la apariencia de los códigos de barras 1D en IronBarcode?

Sí, IronBarcode permite personalizar la apariencia de los códigos de barras 1D, incluidos sus colores, tamaños y fuentes de texto.

¿Puede IronBarcode codificar información adicional en un código de barras 1D?

Sí, IronBarcode puede codificar información adicional como detalles del producto o números de serie en un código de barras 1D, dependiendo del tipo de código de barras.

¿Cuáles son las ventajas de utilizar códigos de barras 1D?

los códigos de barras 1D son sencillos y rentables, por lo que resultan ideales para aplicaciones en el comercio minorista, la gestión de inventarios y la logística. Permiten introducir datos de forma rápida y precisa.

¿Puedo leer códigos de barras 1D con IronBarcode?

Sí, IronBarcode puede utilizarse para leer y descodificar códigos de barras 1D a partir de imágenes o documentos escaneados.

¿Cómo integro IronBarcode en mi proyecto de C#?

Para integrar IronBarcode en su proyecto de C#, puede instalarlo fácilmente a través de NuGet Package Manager y hacer referencia a él en los archivos de su proyecto.

¿Es IronBarcode adecuado para uso comercial?

Sí, IronBarcode está diseñado para uso comercial, proporcionando características robustas y apoyo a los desarrolladores que crean aplicaciones de nivel empresarial.

¿Qué recursos hay disponibles para aprender a utilizar IronBarcode?

IronBarcode ofrece amplia documentación, tutoriales y ejemplos de código en su sitio web para ayudar a los desarrolladores a aprender a utilizar la biblioteca de forma eficaz.

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

Leer más
¿Listo para empezar?
Nuget Descargas 1,979,979 | Version: 2025.11 recién lanzado