lunes, 18 de abril de 2016

Códigos de barra y QR como servicio

En varios de mis desarrollos, en distintos leguajes, tuve la necesidad de generar algún tipo de codigo de barra y últimamente también necesité generar códigos QR. El problema siempre fue como conseguir integrar esa funcionalidad al desarrollo, ya sea como biblioteca nativa o consumiendo algún servicio externo.

En ambos casos he encontrado que las desventajas son varias y el riesgo usarlas era importante. En el caso de las bibliotecas nativas es que no siempre se encuentra una para el lenguaje que estamos usando, ya sea por que no exista, por la licencia, costo, etc.

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

Por este motivo me propuse crear un servidor sencillo que me permita exportar como servicios la generación de ciertos códigos de barra y QR (los que he necesitado) de forma local.

La dirección del proyecto es esta:  https://github.com/padiazg/barcode-as-a-service

Actualmente puede generar codigos EAN13, CODE39, CODE129, PDF417 y QR. La lista puede extenderse a los demás tipos de código que soporta el paquete rescode en el que se basa este proyecto.

Para ponerlo a funcionar debemos seguir estos pasos:
  1. Tener instalado Node.js (se recomienda la versión mas actual)
  2. Descargar el proyecto en alguna carpeta
  3. Abrir una consola e ir a la carpeta donde acabamos de descargar el proyecto
  4. Ejecutar npm install para descargar los paquetes requeridos
  5. Ejecutar node barcode-service
Una vez corriendo el servicio, podemos apuntar un navegador al puerto 3000 de la máquina para tener un breve ejemplo del uso del servicio.

Se agradecerá los comentarios y algún feedback.

Actualización: 

V1.1 (09/mayo/2016)
  • Se corrige un problema con las letras, relacionado a la escala del código generado.
  • Se agrega el parámetro "scale", con la que se puede especificar la escala de la imágen generada.
  • Se agrega el parámetro "fmt" para seleccionar el formato de la imágen generada.
  • Se implementa la generación de códigos "DataMatrix" 
  • Se  simplifica el procedimiento interno para la generación de los códigos.
Para la generación de salida en formato JPG se debe tener instalado GraphicsMagick, es simplemente bajar e instalar la versión apropiada para su sistema, antes de ejecutar el servidor.

No debemos olvidar de actualizar los requerimientos de paquetes con npm install después de actualizar a la nueva versión.

No hay comentarios.: