/ node

Códigos de barra como servicio

En algún momento de nuestra vida como desarrolladores necesitaremos generar algún tipo de codigo de barra, y últimamente códigos bidimensionales como QR o PDF417.

El dilema es como integrar esa funcionalidad al desarrollo, ya sea como biblioteca nativa o consumiendo algún servicio externo.

En ambos casos las desventajas son varias y el riesgo de usarlas es importante.

Bibliotecas nativas

El problema con las bibliotecas nativas es que no siempre se encuentra una para el lenguaje que estamos usando o para la plataforma donde estamos desplegando nuestro desarrollo, ya sea por que no exista, por licencia, costo, etc.

Servicios externos

En el caso de los servicios externos , aunque es muy cómodo simplemente llamar a una url y recuperar una imágen, estos servicios pueden dejar de existir, volverse muy lentos, cambiar su API, incluir costos, o simplemente el acceso a internet no es una opción.

Servicio local

Por este motivo creé un servidor que exporte como servicios la generación de ciertos códigos de barra y bidimensionales de forma local.

Tipos de códigos generados

Actualmente puede generar codigos EAN13, CODE39, CODE129, PDF417, QR, DataMatrix e Interleaved 2of 5, aunque la lista puede extenderse
a todos los formatos soportados por los proyectos rescode y bwip-js en los que está basado este desarrollo.

Formatos de salida

Por defecto se generan imágenes en formato PNG, y opcionalmente en formato JPG (ver requerimientos adicionales mas adelante)

Instalación

El proyecto completo puede descargarse de aquí.

Necesitamos NodeJS, preferentemente en su última versión.

Para poder generar imágenes en formato JPG se requiere tener instalado GraphicsMagik.

git clone https://github.com/padiazg/barcode-as-a-service.git
cd barcode-as-a-service
npm install
npm run start

Modo de uso

Apunta tu navedador a http://localhost:3000 para ver una página de ayuda con ejemplos de uso.

La forma de llamar al servicio es:
http://serverhost:port/<barcode>?value=<value>&scale=<scale>&fmt=<PNG|JPG>

Donde:
serverhost y port son la url de nuestro servidor
barcode es el tipo de código solicitado
value es el valor a generar
scale es la escala de la imágen (por defecto es 0)
fmt es el formato de imágen a generar. Valores posibles son PNG y JPG, por defecto es PNG.

Ejemplos:

EAN13
http://localhost:3000/ean13?value=7840058004215

CODE39
http://localhost:3000/code39?value=12345678

CODE128
http://localhost:3000/code128?value=98380d7d-85df-456f-901d-3b325ee86e07

PDF417
http://localhost:3000/pdf417?value=patricio+antonio+diaz+gimenez

QR
http://localhost:3000/qr?value=patricio+antonio+diaz+gimenez

DataMatrix
http://localhost:3000/datamatrix?value=patricio+antonio+diaz+gimenez

Interleaved2of5
http://localhost:3000/interleaved2of5?value=1234567890

Códigos de barra como servicio
Share this