Recientemente me he tenido que pegar desde Velneo con un codigo de barras, el Interleaved 2 of 5.

Despues de un buen tiempo buscando informacion, me encontraba con codigos de barras llamados ITF o Dun-14, que por lo que he podido entender vienen a ser el mismo. Claro eso me ha costado mucho entenderlo ya que desprecie mucha informacion ya que no era el que yo buscaba.

Aunque el Interleaved 2 de 5 se puede utilizar con o sin digito de control, se es obligatorio que este compuesto por numeros y que la cantidad de ellos sean par, os voy a enseñar como se haya el digito de control ya que mucha de la documentacion que encontre es algo confusa.

Partiendo que ya se tiene el campo del codigo que queremos codificar por ejemplo 13 dígitos (ejemplo: 1 7 5 0 3 0 1 5 2 8 1 0 2), el digito de control se haya en estos pasos (Recordad que el codigo tiene que se par, por eso escogi 13 + 1 del DC ya es par, si tuvierais que partir de un digito par, por ejemplo 12 digitos, lo que debeis hacer es rellenar por la izquierda con un 0 hasta que sea impar , obviamente con 1 llega):

a) Empezando por la derecha, multiplique los de la posicion impar por 3 y los de la posicion par por 1. Apunte cada una de las cantidades. Con el ejemplo seria 2*3=6, siguiente digito, 0*1=0, siguiente digito 1*3=3, siguiente, 8*1=8... asi sucesivamente hasta el final. Lo que habra obtenido es la siguiente multiplicacion:

1 7 5 0 3 0 1 5 2 8 1 0 2
x 3 1 3 1 3 1 3 1 3 1 3 1 3
--------------------------
3 7 15 0 9 0 3 5 6 8 3 0 6

B) Ahora lo que debe hacer es sumar todas esas multiplicaciones, usease 3 + 7 +15+ 0+ 9+ 0+ 3+ 5+ 6+ 8+ 3+ 0+ 6 =65

C) Ahora para haya el digito de control, lo que tendria que hayar seria el numero mas pequeño que sumado al total de como resultado la siguiente decena. 65-70= 5. Y este seria el Digito de Control, 5

Ya que a mi me costo entender este resultado sobre la acercamiento a la decena, les voy a poner mas ejemplos:

Imaginese que la suma le da 122, el digito de control seria 8 ya que 122 + 8 serian 130.

Imaginese ahora que la suma le da 150, el digito de control seria 0 ya que ya esta en la decena mas cercana.

En programacion, la manera mas facil de buscar esa decena es, extraer el ultimo digito de la suma (el de mas de la derecha) y restarselo al numero 10. Es simple la explicacion ya que si cojemos la suma 122, extraemos el ultimo digito (el 2) y se lo restamos a 10, nos dara como resultado 8. Obviamente da lo mismo 122-130= 8 que 10 -2=8, el resultado es el mismo.

El codigo de barras mas el digito de control quedaria asi:

1 7 5 0 3 0 1 5 2 8 1 0 2 5

Ahora con una fuente trueType ya podriais imprimirlo sin necesidad de pagar por plugins ni integrar cutres ocx que andan por ahi. Aunque con Velneo el Interleaved ya viene integrado y no hace falta ninguna fuente externa, ni ocx ni chapuzas de ese estilo que matan al programador y lo queman despues en el mantenimiento e instalacion...

PUNTO PARA VELNEO!!

Si alguien quiere el codigo fuente de como se hace en Velneo, ponedme un comentario que os lo enviare. No lo cuelgo por falta de espacio.

Un saludo. HectorSaratoga