Leer Codigo de Barra con PHP

23106 visitas 11 respuestas

Compañeros(as) Foreros.

Me gustaria saber si alguien tiene algun codigo para leer o generar codigos de barra en php, sin necesidad de recurrir a hostscrips.com. Encontre este tutorial pero no lo he podido hacer funcionar:

[URL]http://www.webmasters.org.mx/forosweb/index.php?s=b322d5777d76e1010f44ca17ec646c17&showtopic=46

Se agradece cualquier ayuda ya que me urge y estoy en contra del tiempo

por desde Chile

Registrado desde: 14 Apr 04

Respuestas

0 0

por desde España

Registrado desde: 05 Oct 06
0 0

Gracias por tu respuesta.

te cuento que baje la ultima version del script lo descomprimo dentro de la carpeta www con el nombre de Image_Barcode y al ejecutarlo me arroja el siguiente error:

Parse error: parse error, unexpected T_DNUMBER in C:\\wamp\\www\\Image_Barcode\\Image_Barcode.php on line 357

La linea 357 contiene esto:

Image_Barcode-1.0.4/Barcode/ean13.php100664    764    764       22152 10246513455  12357 

ademas te cuento que al descomprimir la carpeta no venia con extension yo coloque extension php.

Ojala puedas ayudarme, te agradesco una enormidad.

por desde Chile

Registrado desde: 14 Apr 04
0 0

Hola yo tengo unos script que me paso un amigo, y funcion bien, pero no se que codificacion es la que quieres trabajar dime con cual codificacion vas a trabajar y te paso los archivos. Para leer los codigos de barras no tienes que hacer nada solo tener el lector laser y colocar el foco en el imput que lo desees

por desde El Salvador

Registrado desde: 25 Feb 06
0 0

ooooo que bien gracias muchas gracias.

Con respecto a la codificacion me interesan:

  • Code 128.
  • Code 39.
  • EAN / JAN.

Pienso trabajar con cualquiera de estos, espero que puedas ayudarme, tengo una duda voy a necesitar alguna fuente en especial.

Ya pues compañero se agradece enormemente.

Te dejo mi correo : juangonzalez1978@gmail.com

                           :juangonzalez1978@yahoo.es

por desde Chile

Registrado desde: 14 Apr 04
0 0

Esta es la direccion de la libreria que te dije pero segun me dijo el que me la paso tenia unos errores que el corrigio, aqui te dejo lo que el me escribio:

"no obstante el chamaco que hizo esto ya no la mantiene, porque le detecté un error GORDO en la codificación C128, se lo mandé y no le ha hecho ni caso. Así que mejor usad la que os envío anexa, que ya tiene la corrección."

http://www.mribti.com/barcode/

fijate que tambien encontre error en la generacion de codigos de barra cuando los numeros son bajos como por ejemplo 10, 55, numeros asi de 1,2 o 3 cifras pero con numeros de 4 cifras en adelante no me a dado ningun problema hasta ahorita, yo necesito generar los codigos de barra desde numeros de 1 cifra hasta quisas numeros de 5 ó 6 cifras.

Lo que hice para solucionarlo es que veo cuantas cifras tiene el numero y le concateno tantos ceros a la izquierda sean necesario yo le puesto como limite un numero de 7 cifras que considero que es lo suficientemente grande para mi caso y cuando lo leeo el valor del codigo de barras generado solo tomo el valor entero con intval() asi se ingnoran los ceros a la izquierda que le concatene.

Aqui te dejo el link de la libreria ya corregida la que yo estoy usando http://www.megaupload.com/?d=1BP933ZL

por desde El Salvador

Registrado desde: 25 Feb 06
0 0

no me funciona creo que puede ser problemas con el puerto los errores que me arroja es en el arvhvo debug.

c:\appserv\www\barcode\debug.php on line 41

c:\appserv\www\barcode\debug.php on line 56

alguna idea.

gracias y disculpa por molestarte y molestar muchos a los foreros.

por desde Chile

Registrado desde: 16 Apr 03
0 0

Mandame el error que te aparece solo es de cambiar un parametro en el php.ini no recuerdo cual era mandame todo el error que te aparece

por desde El Salvador

Registrado desde: 25 Feb 06
0 0

Haber amigo estos son los errores que me muestran cunado clic en sample.php

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\\appserv\\www\\barcode\\debug.php on line 41

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\\appserv\\www\\barcode\\debug.php on line 41


Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\\appserv\\www\\barcode\\debug.php on line 56

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\\appserv\\www\\barcode\\debug.php on line 56

Eso son los errores....

por desde Chile

Registrado desde: 16 Apr 03
0 0

Hola, como estan? estoy desarrollando una aplicacion que me genere codigos de barras desde informacion que recolecto desde una base de datos donde almaceno datos de los usuarios. Yo al codigo de barras lo genero solo con numeros. Numero de operacion, numero de legajo, importe, y asi un par de numeros mas un digito verificador al final.

Tengo dos problemas: el primero que me genera un "0" de mas al iniciar la cadena de numeros que me representa el codigo de barras. Al principio yo le puse que siempre me imprima "0123", de hecho lo hace asi al imprimir el codigo de barras, pero al leerlo con el lector de codigos de barras en la pantalla me salta como que tengo un "0" de mas al principio. O sea "00123". Alguna ayuda?

El segundo problema es que no comprendo la formula del digito verificador, si alguien podria ayudarme les paso el codigo.

Muchas gracias :)

por desde Argentina

Registrado desde: 21 Aug 09
0 0

Sobre el segundo punto: imagino que hablas de código de barras EAN13 Esto es de Wikipedia:

Dígito de control. Para comprobar el dígito de control (por ejemplo, inmediatamente después de leer un código de barras mediante un escáner), numeramos los dígitos de derecha a izquierda. A continuación se suman los dígitos de las posiciones impares, el resultado se multiplica por 3, y se le suman los dígitos de las posiciones pares. Se busca decena inmediatamente superior y se le resta el resultado obtenido. El resultado final es el dígito de control. Si el resultado es múltiplo de 10 el dígito de control será 0.

Por ejemplo, para 123456789041 el dígito de control será:

  • Numeramos de derecha a izquierda: 140987654321
  • Suma de los números en los lugares impares: 1+0+8+6+4+2 = 21
  • Multiplicado × 3: 21 × 3 = 63
  • Suma de los números en los lugares pares: 4+9+7+5+3+1 = 29
  • Suma total: 63 + 29 = 92
  • Decena inmediatamente superior = 100
  • Dígito de control: 100 - 92 = 8 El código quedará así: 1234567890418.

Ej. sacado de un texto de forosdelweb:

Tomamos por ejemplo el codigo de mi chocolate para beber favorito 750105922532-9 <- el 9 es el numero que se debe obtener.

  • Paso tomamos la cadena 750105922532 y la invertimos (235229501057).
  • Sumo los numeros en los lugares impares de la cadena 2+5+2+5+1+5=20 y el resultado lo multiplico por 3, 20 *3 = 60.
  • Sumo los numeros en los lugares PARES de la cadena 3+2+9+0+0+7=21. *Sumo el resultado del paso 2 y el paso 3 y me da 81, ahora calculo la decena inmediata superior, en este caso es 90 y a esto le resto 81, 90-81=9;

Y asi obtengo el digito verificador 9. Un poco liado pero segun se ese es el protocolo, xd.

Función que puede servir para generarlo o comprobarlo (en este último caso adaptada, claro está):

<?php
//función creada por f0n para generar ese dígito verificador
function ean($cadena)//función para generar el control de verificación de un código de barras EAN13 (son 12 dígitos y el de control separado por un guión)
{
    $cadena = strrev($cadena);//se presentan los 12 números de manera inversa
    $i = 0;
    while($i < strlen($cadena))
    {
     if($i%2 == 0) $impares += $cadena[$i];//se suman los impares
     else $pares += $cadena[$i];//se suman los pares
    $i++;
}
$suma = $pares + ($impares*3); //se realiza la suma de los pares con el resultado de multiplicar la suma de los impares por 3
return 10 -($suma%10);//se resta a 10 el resto de dividir esa suma por 10.
}

// Prueba
$numeros="123456789041";//12 dígitos de un código de barras EAN13.
echo $numeros.'<br />';
$control= ean($numeros); // devuelve el código de control
echo 'código de barras: '.$numeros.$control.'<br />';
?>

por desde España

Registrado desde: 04 Sep 07
0 0

Aquí tengo una aplicación que genera códigos de barras

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

Si alguien tiene alguna sugerencia, será bienvenida.

Saludos

por desde España

Registrado desde: 05 Oct 10