Generar y guardar imágenes de códigos de barras con PHP

Publicado por parzibyte en

Código de barras generado con PHP escaneado

Códigos de barras con PHP

Los códigos de barras sirven para muchísimas cosas, por ejemplo, identificar a productos. Podríamos tener un sistema de ventas y generar códigos de barras dependiendo del valor de cada uno de ellos.

Es por ello que en este artículo voy a explicar cómo generar códigos de barras con PHP y guardarlos en una imagen PNG o JPG, así como guardarlos en un archivo SVG o simplemente generar el código HTML necesario.

Por cierto, para esto vamos a usar la librería llamada PHP Barcode Generator cuyo repositorio encuentras aquí.

Este ejemplo es muy parecido al de combinar documentos PDF, porque también veremos cómo guardar la imagen en el disco duro, generarla en tiempo de ejecución o forzar la descarga.

Nota: mira cómo generar códigos de barras con AngularJS.

Código fuente y ejemplos

Si quieres navegar por el código fuente, visita el repositorio de GitHub. En caso de que quieras ver los ejemplos de los códigos de barras generados míralos en este enlace.

Instalar librería

Para instalar la librería necesitas instalar Composer. Si crees que composer no sirve, se te hace complicado o necesitas adaptar tu proyecto, por favor mira lo siguiente:

Te aseguro que Composer te hará un mejor desarrollador de PHP. Ahora sí a lo que estábamos, instala la librería con:

composer require picqer/php-barcode-generator

Luego de eso espera a que se termine de instalar, incluye tu autoload en donde lo necesites (ve los tutoriales de composer si no sabes cómo) y ya podemos continuar.

Primer vistazo al generador de códigos de barras de PHP

Aquí está el ejemplo más básico, simple y con lo mínimo de código. En él generamos un código de barras que dice “parzibyte.me” y lo mostramos como HTML. Veámoslo brillar:

Eso va a generar una serie de elementos div y los pondrá como HTML. No te preocupes, si quieres que se generen como imagen vamos a verlo más abajo.

Por ahora veamos que el código fue generado de manera perfecta, aquí la prueba (lo he escaneado con esta app) escaneada con mi teléfono:

Código de barras generado con PHP escaneado

Código de barras generado con PHP escaneado

De esta manera vemos que la calidad del código de barras es excelente, pues no es necesario ni imprimir ni leer con un lector para saber el contenido.

Los tipos de códigos de barras

Puedes usar cualquier tipo soportado por la librería. A la fecha son los siguientes:

  • TYPE_CODE_39
  • TYPE_CODE_39_CHECKSUM
  • TYPE_CODE_39E
  • TYPE_CODE_39E_CHECKSUM
  • TYPE_CODE_93
  • TYPE_STANDARD_2_5
  • TYPE_STANDARD_2_5_CHECKSUM
  • TYPE_INTERLEAVED_2_5
  • TYPE_INTERLEAVED_2_5_CHECKSUM
  • TYPE_CODE_128
  • TYPE_CODE_128_A
  • TYPE_CODE_128_B
  • TYPE_CODE_128_C
  • TYPE_EAN_2
  • TYPE_EAN_5
  • TYPE_EAN_8
  • TYPE_EAN_13
  • TYPE_UPC_A
  • TYPE_UPC_E
  • TYPE_MSI
  • TYPE_MSI_CHECKSUM
  • TYPE_POSTNET
  • TYPE_PLANET
  • TYPE_RMS4CC
  • TYPE_KIX
  • TYPE_IMB
  • TYPE_CODABAR
  • TYPE_CODE_11
  • TYPE_PHARMA_CODE
  • TYPE_PHARMA_CODE_TWO_TRACKS

También puedes leer más sobre los tipos. Lo que importa aquí es que para usar el tipo declara la variable así:

$tipo = $generador::EL_TIPO_AQUI;

Es decir, accede a los miembros estáticos del generador. No hablaremos de tipos aquí porque no es el punto del post, pero si quieres mi recomendación, usa el TYPE_CODE_128.

Generadores de códigos de barras

Ya vimos allá arriba el HTML, pero esta librería también permite generar códigos de barras como:

  • Imagen PNG
  • Imagen JPG
  • SVG

Para usarlo, simplemente cambiamos las clases. Por ejemplo:

Y cada generador devuelve los datos del código de barras, ya sea para ser guardados o para imprimirlos directamente. Veamos más ejemplos.

Código de barras como PNG en el navegador

Veamos cómo mostrar una imagen de un código de barras en el navegador. El formato es PNG pero sería lo mismo (cambiando la clase) para JPG, HTML y SVG. Aquí un ejemplo:

En ese caso se mostrará una imagen PNG que puede ser descargada o visualizada.

Guardar imagen PNG con código de barras usando PHP

Veamos ahora cómo guardar el código de barras generado dentro del disco duro. Para ello usamos file_put_contents.

Si todo va bien, la imagen será guardada. Ya dije que esto podemos hacerlo igualmente con una imagen JPG

Forzar descarga de código de barras PNG

Primero que todo te invito a leer este tutorial para saber más sobre el tema. Ahora sí veamos el código:

Es como en donde mostrábamos la imagen en el navegador pero con encabezados adicionales.

Generar código de barras a partir de parámetro GET

Para profundizar más dentro de todo este recorrido sobre códigos de barras veamos un ejemplo en donde se genera el código de barras dependiendo de lo que le pases en la URL. Por ejemplo, si la url es:

generar.php?texto=Hola

Debe generar una imagen con el código de barras correspondiente al texto Hola.

Con ese código, el script va a generar un nuevo código de barras dependiendo del texto que le mandes y va a mostrarlo como imagen PNG.

Poner código de barras en etiqueta HTML

Ahora veamos cómo combinar el ejemplo anterior con HTML para generar una serie de imágenes cuya fuente o src sea el script que genera códigos de barras. Quedaría así:

De esa forma armamos algo como una API para códigos de barras con el ejemplo 6 y la consumimos en este ejemplo. Aquí la salida:

Múltiples códigos de barras generados con PHP

Múltiples códigos de barras generados con PHP

Más opciones para personalizar código de barras

Para terminar con el tutorial, veamos otras opciones que se pueden personalizar y mandar como tercer, cuarto y quinto parámetro:

  • Anchura de la barra: un factor que dice qué tan ancha debería ser cada barra, debe ser un entero. Ojo que esto indica el factor por el que va a multiplicar la anchura de cada barra, no la anchura total.
  • Altura: la altura del código de barras, igualmente como entero
  • Color: un color RGB pero en forma de arreglo, por ejemplo [250, 125, 0]. Me costó media hora averiguar esto y tuve que analizar el código para saberlo.

Con el siguiente código se explica mejor:

De esta manera sale un código así:

Código de barras con color, altura y anchura personalizados

Código de barras con color, altura y anchura personalizados

Conclusiones

Así de fácil, sencillo y divertido es generar códigos de barras con PHP y esta maravillosa librería llamada PHP Barcode Generator.

Mira más sobre PHP aquí.


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB.Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron.Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scriptsLa plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C.Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

2 Comments

Crear códigos QR con PHP y qr code - Parzibyte's blog · marzo 3, 2019 a las 5:00 am

[…] vimos cómo generar códigos de barras con PHP, ahora vamos a ver cómo crear códigos QR con PHP. Me parece que los códigos QR o QR codes pueden […]

Instalar imagick para PHP en Linux Ubuntu - Parzibyte's blog · junio 24, 2019 a las 9:57 am

[…] instalar la extensión de imagick en PHP sobre Linux. Personalmente la tuve que instalar ya que los códigos de barras la necesitan y se generaba el siguiente […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: