Generar códigos de barras con PHP y PEAR:Image_Barcode

Ante la necesidad de generar códigos de barras mediante PHP, he encontrado el paquete de PEAR Image_Barcode.

La instalación no puede ser más sencilla en Ubuntu 8.04. Image_Barcode se encuentra en los repositorios en forma de módulo de PHP (php-image-barcode). Ha instalado Pear y Gd como dependencias y ya está.

Con un:

sudo apt-get install php-image-barcode

Ya tenemos instalado todo lo necesario

En caso de no tener hasta ahora Gd, se hace necesario reiniciar apache:

sudo /etc/init.d/apache2 restart

Bien, ahora ya podemos ejecutar el ejemplo que nos dan en la documentación:
[PHP]
require_once ‘Image/Barcode.php’;
Image_Barcode::draw(‘1234′, ‘int25′, ‘png’);

[/PHP]
Nos generará la siguiente imagen:

En nuestro caso necesitamos generar códigos con letras y descripciones, por esta razón utilizamos el tipo de código “code128″, quedando el ejemplo de la siguiente manera:

[PHP]
require_once ‘Image/Barcode.php’;
Image_Barcode::draw(‘ControlZeta’, ‘code128′, ‘png’);

[/PHP]
Se nos genera esta otra imagen:

Código de barras alfanumérico con Control Zeta

Hasta aquí todo perfecto, pero… Estos códigos son demasiado altos para el uso que se les va a dar, así que necesitamos disminuir el alto del código. Una opción seria modificar directamente la altura de la imagen, pero esto “achataría” el texto inferior. No nos interesa.

Evidentemente hemos ido a la documentación oficial: http://pear.php.net/package/Image_Barcode/docs

Tras no ser capaz de encontrar ningún método para modificar la altura de códigos de barras code128 (cualquier ayuda será bienvenida) he ido directamente a la clase para ver como podía modificar esta altura. Mi sorpresa ha sido no encontrar ningún método que hiciera lo que necesitaba, pero en cambio, me encontrado con esta simple porción de código nada más empezar a leer:

[PHP]

class Image_Barcode_code128 extends Image_Barcode
{
var $_type = ‘code128′;
var $_barcodeheight = 60;
var $_font = 2;
var $_barwidth = 1;
var $code;

[/PHP]

Evidentemente, he cambiado el valor $_barcodeheight y todo ha funcionado a la perfección, pero estoy seguro que hay algún motivo para que este valor sea fijo. ¿Alguien tiene alguna explicación al respecto?

Por cierto, el resultado final es este:

3 comentarios »

  1. Daniel escribió

    Hola, muy interesante tema; una pregunta con respecto a la instalacion pero para windows estuve leyendo y se debe primero instalar pear primero, creo entender que Image_Barcode es parte de pear, pero se me ha complicado algo esa parte si me pueden orientar, me gustaria mucho.

  2. PoOoX escribió

    Buf yo lo instalé en ubuntu, que es como explico en este tema, para windows primero deberias tener la libreria GD en tu PHP, eso seguro, puedes verlo con phpinfo().

    Para el image_barcode… prueba aqui: http://pear.php.net/package/Image_Barcode/download

  3. gaby escribió

    Hola
    oye por ejemplo yo necesito instalar la imágen del código de barras en centos 2.6.9 y tiene instalado php4.3.9

    Tú no sabes de casualidad cómo se haría en esta distribución?

    Ojalá y me puedas ayudar.
    Muchas Gracias

RSS suscribirse para los comentarios en esta entrada · URI para TrackBack.

Dejar un comentario