Ir al contenido
Tutorial

API de generación de códigos de barras: una salida POST, SVG, seis formatos

| 5 min read

Genere códigos de barras con una llamada API. Admite Code128, EAN-13, EAN-8, UPC-A, ITF-14 y MSI. Devuelve SVG que puede incrustar en etiquetas, facturas o archivos PDF.

Close-up of barcodes on product packaging
Photo by Markus Winkler on Unsplash

La aplicación de su almacén imprime etiquetas de envío. Cada etiqueta necesita un código de barras Code128 para el seguimiento número. Puede instalar una biblioteca de códigos de barras, renderizar en lienzo, exportar como PNG e incrustarlo en su plantilla de etiqueta. O puede enviar un POST y recibir un SVG.

La botoi /v1/barcode El terminal codifica los datos en seis formatos de códigos de barras y los devuelve. una cadena SVG dentro de una respuesta JSON. Sin paquete npm. Sin paso de construcción. Sin dependencia del lienzo.

La llamada API

Envía una solicitud POST con los datos y formato:

La respuesta envuelve el SVG en un sobre JSON estándar:

Extrae el svg Campo, soltarlo en una <img> etiquetar, en línea en HTML o canalizarlo a un archivo. El SVG se muestra nítido en cualquier tamaño porque está basado en vectores; sin artefactos de rasterización a 300 DPI o más.

Parámetros

El punto final acepta cinco parámetros. Solo data se requiere:

  • datos (cadena, requerida): El valor a codificar. Para EAN-13, pase 13 dígitos. Para Code128, pase cualquier cadena ASCII imprimible.
  • formato (cadena, por defecto code128): Uno de code128, ean-13, ean-8, upc-a, itf-14, o msi.
  • ancho (número, predeterminado 200): ancho de la imagen en píxeles. Rango: 50 a 2000.
  • altura (número, predeterminado 80): altura de la imagen en píxeles. Rango: 20 a 1000.
  • mostrar_texto (booleano, predeterminado true): Si se debe representar el valor codificado como texto debajo de las barras.

Aquí hay un código de barras Code128 con todos los parámetros configurados:

Ejemplos prácticos

Generación de etiquetas de envío

Codifique un número de seguimiento como Código 128 para albaranes y etiquetas de envío. Mangos Code128 cadenas alfanuméricas mixtas, por lo que los números de seguimiento como "1Z999AA10123456784" funcionan sin preprocesamiento.

sistema de gestión de inventario

Imprima etiquetas Code128 para contenedores y estantes de almacén. El personal los escanea con lectores portátiles. durante el proceso de recogida y embalaje. El código de barras codifica la ruta de ubicación completa: almacén, estantería, contenedor.

Etiquetas de productos minoristas (EAN-13)

EAN-13 es el estándar internacional para productos minoristas. Pasar el GTIN de 13 dígitos y la API devuelve un tamaño SVG para etiquetas de borde de estante estándar.

Generación por lotes de Node.js para un catálogo de productos

Genere códigos de barras para un catálogo de productos completo en paralelo. Este script dispara cuatro solicitudes. simultáneamente y recopila las cadenas SVG:

Producción:

Para catálogos con cientos de productos, haga lotes en grupos de 20 a 50 para mantenerse dentro de los límites de tarifas. El nivel gratuito tiene un límite de 5 solicitudes por minuto; una clave API elimina ese límite.

Ejemplo de Node.js: etiquetas de códigos de barras para cumplimiento de pedidos

Este servidor Express expone un /labels/:orderId punto final. Cuando tu cumplimiento El sistema o la impresora de etiquetas recupera esta URL, obtiene un código de barras SVG que codifica el pedido. número de seguimiento.

Uso:

El encabezado de la caché de 24 horas evita llamadas API duplicadas para el mismo pedido. En producción, agregue un caché CDN o Redis delante de esta ruta.

Cuándo usar qué formato

Code128 es el predeterminado por una razón: codifica la gama más amplia de caracteres y funciona para la mayoría de los sistemas internos. Cambie a EAN-13 o UPC-A cuando su producto necesite un escaneo minorista código de barras. Utilice ITF-14 para etiquetas de cajas exteriores en logística. MSI se adapta al etiquetado de estanterías de almacenes donde necesita códigos solo numéricos con un simple dígito de control.

Puntos clave

El nivel gratuito de 5 solicitudes por minuto cubre desarrollo, pruebas y etiquetas de bajo volumen. impresión. Para sistemas de generación de lotes o cumplimiento de alto tráfico, pase su clave API en el Authorization: Bearer encabezamiento. Compruebe el Documentos API para obtener la referencia completa del punto final.

FAQ

¿Necesito una clave API para generar códigos de barras?
No. El nivel gratuito permite el acceso anónimo a 5 solicitudes por minuto con limitación de velocidad basada en IP. Para cargas de trabajo de producción, agregue una clave API en el encabezado Autorización para aumentar el límite.
¿Puedo obtener una PNG en lugar de SVG?
La API devuelve SVG dentro de una respuesta JSON. SVG escala a cualquier resolución sin pixelación, lo que lo hace ideal para impresoras térmicas de etiquetas a 203 o 300 DPI. Para convertir a PNG, rasterice el SVG con Sharp, Inkscape o un elemento de lienzo del navegador.
¿Qué caracteres puedo codificar en Code128?
Code128B admite caracteres ASCII imprimibles desde el espacio (0x20) hasta la tilde (0x7E). Esto cubre letras mayúsculas y minúsculas, dígitos, puntuación y símbolos comunes. Para datos solo numéricos como GTIN, utilice EAN-13, EAN-8 o UPC-A.
¿Cómo incrusto el código de barras SVG en un PDF?
Extraiga el campo svg de la respuesta JSON y páselo a su biblioteca PDF. Bibliotecas como Puppeteer, wkhtmltopdf y WeasyPrint procesan SVG en línea de forma nativa. Para reportlab o jsPDF, primero convierta el SVG a PNG con Sharp o Canvas.
¿Cuál es la longitud máxima de datos?
Code128 puede codificar cadenas de hasta aproximadamente 80 caracteres antes de que el código de barras se vuelva demasiado ancho para las impresoras de etiquetas estándar. EAN-13 está fijado en 13 dígitos, EAN-8 en 8, UPC-A en 12 e ITF-14 en 14. Mantenga los datos breves para un escaneo confiable.

Empieza a construir con botoi

150+ endpoints de API para consultas, procesamiento de texto, generacion de imagenes y utilidades para desarrolladores. Plan gratuito, sin tarjeta de credito.