Es verdad Roger, no había caido en que tienen que empezar y terminar con un aterisco, pero eso de que no admita más de 12 carácteres no es verdad, admite hasta
43 carácteres, eso sí, sólo mayúsculas. La desventaja del CODE39, es que al no llevar carácter de control, pueden haber errores de lectura si la impresión es muy pequeña.
Pero a todo ésto, hay otra cosa, es que yo no uso CODE39, sino CODE39x, que es una ampliación del CODE39, éste soporta los 128 primeros carácteres ASCII, por lo que incluye mayúsculas y minúsculas, pero las desventajas siguen siendo las mismas.
Muchos lectores de códigos, traen la opción de comprobación del checksum del CODE39, es un MOD 43, de los carácteres de acuerdo con una tabla específica.
Código:
Calculating a check digit according to Modulo 43:
Modulo 43 is used by the barcode symbology Code 39.
Here is an example of how to calculate the check digit according to Modulo 43:
Code ("159AZ") 1 5 9 A Z
Reference numbers 1 +5 +9 +10 +35 = 60 (Sum)
60 / 43 = 1 rest 17
The check digit is "H" (reference number 17)
*The reference numbers of Code 39 are:
00 0
01 1
02 2
03 3
04 4
05 5
06 6
07 7
08 8
09 9
10 A
11 B
12 C
13 D
14 E
15 F
16 G
17 H
18 I
19 J
20 K
21 L
22 M
23 N
24 O
25 P
26 Q
27 R
28 S
29 T
30 U
31 V
32 W
33 X
34 Y
35 Z
36 -
37 .
38 Space
39 $
40 /
41 +
42 %
Aunque creo que hay que activarlo en el software del escáner.
Si quieres más precisión, más carácteres y menos errores, te aconsejo que utilizes CODE128, que sí trae dígito de control, aunque el cálculo del dígito de control es más complicado, y si eso te da lo mismo, usa CODE39x, sólo has de descargarte esa fuente.
Un saludo.-