Deprecated: Assigning the return value of new by reference is deprecated in /home/controlz/public_html/blog/wp-settings.php on line 472

Deprecated: Assigning the return value of new by reference is deprecated in /home/controlz/public_html/blog/wp-settings.php on line 487

Deprecated: Assigning the return value of new by reference is deprecated in /home/controlz/public_html/blog/wp-settings.php on line 494

Deprecated: Assigning the return value of new by reference is deprecated in /home/controlz/public_html/blog/wp-settings.php on line 530

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/controlz/public_html/blog/wp-includes/classes.php on line 594

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/controlz/public_html/blog/wp-includes/classes.php on line 594

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el(&$output) in /home/controlz/public_html/blog/wp-includes/classes.php on line 594

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el(&$output) in /home/controlz/public_html/blog/wp-includes/classes.php on line 594

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el(&$output) in /home/controlz/public_html/blog/wp-includes/classes.php on line 611

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/controlz/public_html/blog/wp-includes/classes.php on line 705

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/controlz/public_html/blog/wp-includes/classes.php on line 705

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el(&$output) in /home/controlz/public_html/blog/wp-includes/classes.php on line 705

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el(&$output) in /home/controlz/public_html/blog/wp-includes/classes.php on line 705

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el(&$output) in /home/controlz/public_html/blog/wp-includes/classes.php on line 728

Strict Standards: Redefining already defined constructor for class wpdb in /home/controlz/public_html/blog/wp-includes/wp-db.php on line 306

Deprecated: Assigning the return value of new by reference is deprecated in /home/controlz/public_html/blog/wp-includes/cache.php on line 103

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /home/controlz/public_html/blog/wp-includes/cache.php on line 425

Deprecated: Assigning the return value of new by reference is deprecated in /home/controlz/public_html/blog/wp-includes/query.php on line 21

Deprecated: Assigning the return value of new by reference is deprecated in /home/controlz/public_html/blog/wp-includes/theme.php on line 623

Strict Standards: Redefining already defined constructor for class WP_Dependencies in /home/controlz/public_html/blog/wp-includes/class.wp-dependencies.php on line 15

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/controlz/public_html/blog/wp-settings.php:472) in /home/controlz/public_html/blog/wp-content/plugins/si-captcha-for-wordpress/si-captcha.php on line 31

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/controlz/public_html/blog/wp-settings.php:472) in /home/controlz/public_html/blog/wp-content/plugins/si-captcha-for-wordpress/si-captcha.php on line 31

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GoogleSitemapGeneratorLoader::Enable() should not be called statically in /home/controlz/public_html/blog/wp-includes/plugin.php on line 311
Generar códigos de barras con PHP y PEAR:Image_Barcode. (Y, sobretodo, como cambiar la altura del código de barras) | formatic.cat

Generar códigos de barras con PHP y PEAR:Image_Barcode. (Y, sobretodo, como cambiar la altura del código de barras)


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-content/plugins/ig_syntax_hilite/geshi.php on line 2056

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:
  1. require_once 'Image/Barcode.php';
  2. Image_Barcode::draw('1234', 'int25', 'png');

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:
  1. require_once 'Image/Barcode.php';
  2. Image_Barcode::draw('ControlZeta', 'code128', 'png');

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:
  1. class Image_Barcode_code128 extends Image_Barcode
  2. {
  3. var $_type = 'code128';
  4. var $_barcodeheight = 60;
  5. var $_font = 2;
  6. var $_barwidth = 1;
  7. var $code;
  8.  
  9. ...

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:

Etiquetas: , , , , ,

26 comentarios para “Generar códigos de barras con PHP y PEAR:Image_Barcode. (Y, sobretodo, como cambiar la altura del código de barras)”


  1. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    shanky dice:

    Muy interesante el post! Y sobre todo didáctico, ahora me voy a poner a provarlo! Con respecto al hecho de la altura, calculo que debe ser de ese alto (60) por una cuestion de estandares, fijate en el los productos del supermercado que todos tienen un alto igual... ahora para otros fines como boletas etc esto no es necesario... digo yo x supuesto!

    salu2!


  2. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    cristian dice:

    Cualquier duda que encuentres con la generación del código de barras, o para despues imprimir los códigos de barras de los productos en una impresora, puedes postearla que intentaremos ayudarte. Es posible que hayamos tenido los mismos problemas

    saludos


  3. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    shanky dice:

    Hola que tal gracias x la respeusta!
    Mis dudas son la siguientes...

    Veo la facilidad de usar PEAR pero para esto debo tener instalado pear en mi servidor, y mi caso es que no tengo accseso al servidor, x lo que mi duda está en si hay alguna clase o algo parecido de generacion de código de barras sin la necesidad de la instalacion de PEAR o x lo menos no sobre los archivos a los que no tengo accseso en el servidor... :S

    y despues me gustaría saber como es posible dictaminar si en el server en el que estoy está o no instalado el PEAR, ya que le hice un phpinfo a mi server y buscé la palabra PEAR y me sale esto:

    include_path .:/usr/local/share/pear .:/usr/local/share/pear

    open_basedir /vhosts/xxxxxx.com.ar:/vhosts/xxxxxx.com.ar/tmp:{PEAR_DIR} no value

    No se si eso significará o no que SI está instalado PEAR... :S

    Cualquier ayuda será bien recivida cristian! Salu2


  4. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    gaby dice:

    Hola.
    Una duda con repecto a la clase;
    La agregas al archivo generado en php(el archivo que muestra el codigo de barras) o dónde debemos poner esa clase?
    Gracias
    Saludos


  5. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    gaby dice:

    Hola
    Ya encontré el archivo. Gracias
    Me has ayudado muchísimo.
    Hasta pronto :)


  6. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    cristian dice:

    Mensaje de Gaby:
    Hola Cristian
    Ya vez que para modificar el alto de la imágen del código de barras comentabas que modificaramos la clase que desglozaste en tu blog? bueno pues yo no daba con esa clase hasta que entré al archivo code128 ubicado en ( /usr/share/php/image/Barcode/ ) y ahí vi en efecto la clase que comentabas. y la ajusté y ya. Eso fue todo lo que paso.

    Oye de casualidad crees que varíe mucho generar el código de barras en redHat y teniendo el servidor apache en red?
    La verdad todavía eso no lo he checado y ya lo necesito.
    Muchas gracias


  7. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    cristian dice:

    Pues al ser una fichero php, es multiplatforma, la generación de códigos de barras se hace mediante unas imágenes, asi que no te va a variar. Siempre que uses el mismo código claro, misma version de clase barcode. Y recomendaría instalar las mismas versiones de PHP Y APACHE, para no tener problemas con el código a nivel de errores.


  8. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    gaby dice:

    Hola Cristián. Oye tengo una duda con respecto al codigo de barras que presentas. Mira lo que pasa es que ya había generado la imágen del c.b y si funcionó, pero ahora el archivo que tiene esa imágen la quiero incluir en una celda dentro de una tabla, en un formulario, y me aparece este error:

    Warning: Cannot modify header information - headers already sent by (output started at /var/www/arlex_intranet/inventarios/conexion.php:32) in /usr/share/php/Image/Barcode.php on line 104
    ‰PNG  ??? IHDR???y???&???Úì¦(???PLTE???ÿÿÿ¥ÙŸÝ???XIDAT(‘cøºzº NoÏ,c©"?Íÿ £ƒT?à8Èÿ÷q?²ÀýòŸwËQ¾þýŽ,p¸üïç÷(*xdÿÞG¨ÿûw?šÀÝzkë?$³ãu>?ûy$žîµ????IEND®B`‚

    Y si incluyo el archivo fuera del formulario me da solo la imágen sin el formulario.
    No sabes cuál será el problema Cristián?
    Gracias
    Saludos


  9. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    Cristian dice:

    El problema no es con la clase que genera la imagen. Sino es un fallo tipico de php, resulta que para poder mostrar una imagen en php, se debe enviar una cabecera mediante al funcion header(''); de php indicandole que lo que vas a enseñar es una imagen del tipo gif, bmp, png, etc. Le debes de indicar lo que se llama el mime-type. Sobre todo, no puedes enseñar nada mas por pantalla antes de enviar el contenido de la imagen.

    Entonces, para enseñar la imagen dentro de una página html o dentro de una celda, lo que deberas hacer es. meter un tag img con una url que genere la imagen solamente.


  10. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    gaby dice:

    Hola Cristián.
    Muchísimas gracias. Ya la pude poner con lo que me dijiste. Es que como todavía no sé muy bien. Se me olvida como se deben poner las imágenes en html.
    Gracias nuevamente. Me sacaste de un problema.
    Hasta pronto.


  11. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    gaby dice:

    Hola Cristián.
    Oye por ejemplo yo voy a ocupar ese código de barras para ir generando un folio, es decir, que cuando se envíe el formulario me ponga la imágen del c.b y el numero de folio correspondiente( es decir que se vaya incrementando el folio cada vez que se envíe el formulario)
    De casualidad tu no sabrás cómo ir generandolo, lo que pasa es que pongo (en el archivo donde está el código de la imágen en php) hago una consulta a la base de datos para obtener el folio y la pongo en una variable, pero no me funciona.
    Perdon por molestarte tanto.
    Saludos
    Y de antemano muchas gracias


  12. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    Gaby dice:

    Hola Cristian.
    Oye de casualidad tu no sabes cómo generar código de barras pero en visual basic.net?
    Muchas Gracias


  13. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    etiquetas Marcar la ropa niños dice:

    Hola Gaby,

    Pues para hacer algo similar desde VB 6 había utilzado tipografias de fuentes, que simulan codigos de barras de tal manera que instalas las fuentes en el sistema y tu imprimes el número que quieres con el tipo de fuente "codigo de barras" tiene otro nombre, te tocará buscarlo, no lo recuerdo...

    pero por barcado fonts seguro que encuentras muchas cosas...
    Si lo encuntras estaremos agradecido a que lo postees aqui...

    un saludo.
    cristian

    cristian


  14. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    Gaby dice:

    ok.
    Muchas gracias Cristian, Así lo haré
    hasta pronto


  15. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    Gaby dice:

    Hola Cristian.
    Oye cómo le hiciste para generar el código de captcha?
    Saludos


  16. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    ALEJANDRO GARCES dice:

    Hola, que tal! podrías poner un ejemplo del Header? . Lo que pasa es que debo poner el codigo de barras en un recibo, el recibo lo genero con PHP y HTML, pero aparece el problema del Header.... Como puedo combinar texto y código de barras en la misma página?

    Gracias de antemano por el apoyo y saludos!!!


  17. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    edu dice:

    Hola Alejandro, imagino que es tarde para ti, pero dejo la respuesta por si alguien llega aquí viendo tu pregunta:

    La clase con el código de barras genera imágenes, por lo tanto puedes hacer una llamada al fichero .php que genera la imagen como si fuera un fichero .jpg o cualquier otro tipo de imagen. Es decir, si en el fichero donde tienes todo el texto del recibo incrustas una imagen y dentro del src="" del tag introduces el .php que genera el código de barras, verás el código de barras en el recibo, con el resto del texto.

    Un saludo.


  18. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    desorder dice:

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


  19. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    parentesys dice:

    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-includes/kses.php on line 947

    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-includes/kses.php on line 948

    Aquí tengo un ejemplo de todo esto que hemos visto antes, sobre la generación de códigos de barra con PHP. Funciona muy bien.

    http://www.parentesys.es/Generador-de-codigos-de-barras-en-PHP-36934

    saludos


  20. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    parentesys dice:

    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-includes/kses.php on line 947

    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/controlz/public_html/blog/wp-includes/kses.php on line 948

    Veo que hay muchas dudas por aquí: Lo primero que hay que hacer es instalar el módulo Image_Barcode, con pear, por ejemplo. Luego, también ercomiendo el paquete PHP_Compat, para evitar incompatibilidades de versión del PHP, y por último implementarlo en nuestras páginas PHP.

    En la siguiente url explico paso a paso, y pongo ejemplo práctico para conseguir los códigos de barras con PHP.

    Pulsa sobre mi nombre para ir a este enlace:
    http://www.parentesys.es/Generador-de-codigos-de-barras-en-PHP-36934


  21. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    QAOS dice:

    como le hago para generar varios codigos de barras, e ir guardandolos en una BD? espero me puedas ayudar u orientarme un poco gracias


  22. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    Jorge dice:

    Estimado. me funciona a la perfeccion, pero como lo hago para imprimir esto en una impresora


  23. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    Gumer dice:

    HOLA maestro ... me SALIO... y se me caen lagrimas por lo ojitos jop que bonito... bueno bueno ahora si, la pregunta... como ago para que se rote 90º, por que no me sirve a lo largo, lo necesito a lo alto ... ¿?


  24. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    Cristian dice:

    Es una imagen, ahora rotarla casi desde css podras hacerlo.

    para la impresion es algo mas complejo, pues directamente desde el navegador esta algo mas complicado. se deberá enviar a una impresora en la nube por ejemplo haber si hay algo por internet sobre eso


  25. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    claudia dice:

    Hola, tengo que colocar el codigo de barra en un formulario html, me dio el errar del header, lo puse con el tag img, pero sigue sin mostrar la imagen ..:(, me podrias dar un ejemplo de como poner la sentencia con el tag img? Gracias


  26. Deprecated: Function ereg() is deprecated in /home/controlz/public_html/blog/wp-content/plugins/google-analyticator/google-analyticator.php on line 399
    claudia dice:

    Hola! ya salio! gracias

Deja un comentario

CAPTCHA Image Audio Version
Reload Image