|
Estructura de Códigos de Barra |
Comprendiendo la Estructura
Tuve la necesidad de migrar de una aplicación
especializada en la impresión de etiquetas como
WinLabel a un reporte de Crystal Reports.
La única dificultad que encontré fue descubrir, que
a diferencia del WinLabel, el Crystal Reports
carecía de soporte para generar códigos de barra
automáticos, o sea que dependía del uso de una font
especifica para lograr dicha imagen.
A pesar de haber usado miles de veces estos
códigos, no sabia que su estructura era bastante
compleja, simplemente pensé que con escribir un
numero (por ejemplo : "9900100726019" y
seleccionar la fuente EAN-13.TTF estaría
todo resuelto. Muy lejos estaba de la verdad.
En primer lugar (tomando como ejemplo para esta
nota el EAN-13) el código de barras se divide en
varias partes.

Entonces ya sabemos que un código EAN-13 se compone
por :
un comienzo (chr(5))
un código de 2 dígitos identificando al país del
producto (no necesariamente debe respetarse)
un primer grupo de 5 dígitos
un separador (chr(124) que representa el caracter
"|" pipe)
un segundo grupo de 5 dígitos
un Dígito verificador
una marca de finalización (chr(5))
Ahora bien.... parece que queda un solo misterio
por resolver... como se puede calcular el dígito
verificador. Sin embargo estamos muy lejos de
comprender todo.
En primer lugar cada caracter numérico deberá ser
reemplazado de acuerdo a la siguiente tabla.

Tomaremos nuestro numero de ejemplo (9900100726019)
y comenzaremos a codificarlo.
CODIGO DE PAIS
Comenzaremos con el código de País (99), para
codificar al pais, tomaremos las columnas de First
Flag y Second Flag en este caso al reemplazar cada
dígito por su caracter correspondiente nos da como
resultado que 99=*i (asterisco, i latina)
PRIMER GRUPO
Para nuestro primer grupo de 5 dígitos (00100)
tomaremos las 2 primeras columnas de la tabla Left
Hand A y Left Hand B. Pero porque tomamos 2
columnas ? (respuesta : Porque algunos de estos 5
dígitos responderan a la columna A y otros a la B)
El formato usado en EAN-13 dice que para el primer
grupo se deberá seguir esta regla (ABABB).
Esto significa que para el primer dígito del primer
grupo se usará la columna LEFT HAND A y para el
segundo la de LEFT HAND B y así sucesivamente.
Como resultado, (si hacemos bien los deberes)
notaremos que la representación codificada de
nuestro primer grupo (00100) = (0@1@@) ( cero -
arroba - uno - arroba - arroba )
SEGUNDO GRUPO
La codificación del segundo grupo (72601) es mas
simple que la del primero, ya que se basa en una
sola columna de referencia. Esa columna es la
identificada como Right Hand.
De acuerdo con esa columna, nuestro código (72601)
= (WRVPQ)
DIGITO VERIFICADOR
Una vez obtenido el dígito verificador del código
de Barras (cosa que veremos mas adelante) deberemos
tomar la columna Check. Como en nuestro ejemplo el
dígito verificador era (9), nuestro codigo
terminará con (y)
String Formado
Como resultado de la codificación para nuestro
código de ejemplo (9900100726019) obtendremos el
siguiente String.
*i0@1@@WRVPQy
Como ademas del código hay caracteres especiales
intercalados entre el String, el resultado final
deberá ser el siguiente.
chr(5) + *i0@1@@ + chr(124) + WRVPQy + chr(5)
Esta secuencia debe ser mostrada con la font EAN-13.TTF
y obtendrán el códigos de barra necesario.
Generando el Dígito Verificador
Ya vimos como codificar nuestra secuencia numérica,
ahora, en caso de desconocer el dígito verificador,
conoceremos en profundidad el algoritmo que lo
genera.
Realmente es muy simple. vamos a volver a mostrar
nuestro numero de ejemplo pero esta vez sin el
dígito verificador.
990010072601
En primer lugar deberemos sumar estos dígitos
comenzando desde el último y salteando de a 1.
1 + 6 + 7 + 0 + 0 + 9 = 23
El resultado se debe multiplicar por 3 y luego
adicionar la suma del siguiente grupo de dígito.
1 + 6 + 7 + 0 + 0 + 9 = 23 * 3 = 69 + ( 0 + 2 + 0 +
1 + 0 + 9 ) = 81
Se debera restar 81 a 100 para ver cuanto queda, en
este caso 19
Se tomará el último dígito (9) como dígito
verificador.
Como podrán deducir, tiene sus secretos pero una
vez conocido el algoritmo y teniendo las tablas de
referencia todo puede lograrse.
He tomado para esta nota, el formato EAN-13 pero
pude ver que para cada formato hay otros algoritmos
e inclusive otras tablas de referencia.
Espero que esta nota sea útil para mucha gente,
realmente la escribo porque cuando necesite alguna
explicación de este tipo, no la he conseguido y
quiero alivianar el camino de otros.

Nombre
Pablo
Gustavo Tilotta
Ubicación
Buenos Aires - Argentina
Si quieres
conocer más sobre Chiaravel haz clic
aquí
Si quieres acceder a nuestros foros haz clic
aquí
|
|
| Explosión
de Dinero (El segundo libro de Javier Buckenmeyer) |
Descubre
el libro que esta cambiando la forma de ver a los sitios web. Descubre
como optimizar tu sitio de forma de obtener así gran cantidad de
ingresos desde Google AdSense.
Escrito por Javier Buckenmeyer (SEO de VB-MUNDO) y traductor
del libro "Secretos de ADSense".
El manual explica todo lo que hay que saber antes de hacer una
página Web con AdSense. Mi libro te explica cómo se gana dinero con
AdSense desde el principio (No después de horas y horas de trabajo
cuando ya es demasiado tarde y hay que empezar de nuevo).
|
|
ver detalles... |
|
Llegó el Software de Google para manejo de Fotografias e Imágenes !!! |
Google no descanza y ha lanzado el Software para manejo de
imágenes digitales que dará que hablar a la NET. Descarga desde aquí tu copia y
comienza a disfrutar de la magia. |
|
Sin
dudas la novedad fue la creación del directorio Yatzoom.com
uno de los directorios web más simples de utilizar y el mas completo
(+ de 600 categorias).
Un sitio que promete dar pelea a los principales directorios de la
NET.
3 Grandes Webmasters unieron sus fuerzas para crear este
directorio y VB-MUNDO no quiere quedar al margen de este hito,
por la cual ya hemos incorporado nuestro link en dicho directorio.
Se calcula que se subirán aproximadamente mas de 1000 sitios
en los primeros días.
Otro aspecto a favor en este sitio es la falta de publicidad, lo
cual lo hace mas amigable y cálido para el usuario.
ir a Directorio web |
|
Solo
escoge el lenguaje o tema que quieras aprender y busca en nuestra
colección de más de 630 tutoriales el que se ajuste a tus
necesidades. Lograrás así acceder a material académico por
excelencia y aumenta tus conocimientos. Poseemos tutoriales de
VB.NET, VB 6.00, C++, Delphi, SQL Server, Linux, ASP, ASP.NET y
muchas más categorias.
ver sección
Tutoriales... |
|
Utilitarios & Herramientas de Software |
Poseemos
una gran variedad de utilitarios y herramientas de software que
complementarán tu trabajo de desarrollador profesional y que sin
dudas te ahorrarán tiempo y esfuerzo. Herramientas para manejo de
Componentes, Documentadores de tu aplicación, Sistemas de Backup,
Editores Hexadecimales, y una gama completa de complementos para
Visual Basic 6.00.
ver sección de
Utilitarios... |