Necesito hacer un programa que a partir de un string de caracteres genere un codigo de barras y lo imprima. Si alguien puede ayudarme con el tema. He probado con fonts pero quisiera hacerlo mas generico.
1 respuesta
Respuesta de miron
1
1
miron, ¡¡La vida es un constante movimiento, la quietud es la muerte!!
Esto es más genérico: ;-) Como imprimir codigo de barras en foxpro d.o.s., pues si es de utilidad para algunas personas que utilizen Foxpro DOS aquí les envio el codigo fuente. * PROGRAMA: ETIQUETAS.PRG * DESCRIPCION: Impresion del codigo de barras en codigo 39 * PARAMETER a PRIVATE mVeces set talk off DEFINE Window mNotas FROM 17,27 to 21,54 Double NOCLOSE Shadow float grow zoom color scheme 10 mVeces = 1 &&CUANTAS ETIQUETAS SE VAN A IMPRIMIR Activate window mNotas @ 1,3 say "...Imprimiendo..." mContador = 1 DO WHILE mContador 0 ? ENDIF IF mContador%4 = 0 ? ENDIF SET PRINTER TO Set print off Set console on ENDIF mContador = mContador + 1 ENDDO Release window mNotas Release all Return FUNCTION CODE39 Parameters m PRIVATE ns,ws,nb,wb,wb1,wb2,wb3,wb4,Na PRIVATE ws1,ws2,ws3,nb1,nb2,nb3,nb4 PRIVATE ns1,ns2,ns3,ns4,msg,t,x IF type('m')"C" Return " " ENDIF IF At("*"," "+m) > 1 Return " " ENDIF Msg="*" + Upper(m) + "*" na = Chr(0) ns = chr(0) + Chr(0) + Chr(0) &&ns = chr(0) + Chr(0) ws = chr(0) + chr(0) + Chr(0) + Chr(0) + chr(0) && ws = chr(0) + chr(0) + Chr(0) nb = Chr(255) + chr(255) &&nb = Chr(255) wb = Chr(255) + Chr(255) + Chr(255) + Chr(255) &&wb = Chr(255) + Chr(255) + Chr(255) WB1 = wb + ns + nb WB2 = wb + ns + wb WB3 = wb + ws + wb WB4 = wb + ws + nb WS1 = ws + nb + ns WS2 = ws + wb + ns WS3 = ws + nb + ws NB1 = nb + ns + wb NB2 = nb + ns + nb NB3 = nb + ws + wb NB4 = nb + ws + nb NS1 = ns + wb + ws NS2 = ns + nb + ws NS3 = ns + nb + ns NS4 = ns + wb + ns p = " " FOR x = 1 to len(msg) t = Substr(msg,x,1) DO CASE CASE t = "1" p = p + WB1 + WS1 + NB1 CASE t = "2" p = p + NB1 + WS1 + NB1 CASE t = "3" p = p + WB2 + WS1 + NB2 CASE t = "4" p = p + NB2 + WS2 + NB1 CASE t = "5" p = p + WB1 + WS2 + NB2 CASE t = "6" p = p + NB1 + WS2 + NB2 CASE t = "7" p = p + NB2 + WS1 + WB2 CASE t = "8" p = p + WB1 + WS1 + WB1 CASE t = "9" p = p + NB1 + WS1 + WB1 CASE t = "0" p = p + NB2 + WS2 + WB1 CASE t = "A" p = p + WB1 + NS2 + NB1 CASE t = "B" p = p + NB1 + NS2 + NB1 CASE t = "C" p = p + WB2 + NS2 + NB2 CASE t = "D" p = p + NB2 + NS1 + NB1 CASE t = "E" p = p + WB1 + NS1 + NB2 CASE t = "F" p = p + NB1 + NS1 + NB2 CASE t = "G" p = p + NB2 + NS2 + WB2 CASE t = "H" p = p + WB1 + NS2 + WB1 CASE t = "I" p = p + NB1 + NS2 + WB1 CASE t = "J" p = p + NB2 + NS1 + WB1 CASE t = "K" p = p + WB1 + NS3 + NB3 CASE t = "L" p = p + NB1 + NS3 + NB3 CASE t = "M" p = p + WB2 + NS3 + NB4 CASE t = "N" p = p + NB2 + NS4 + NB3 CASE t = "O" p = p + WB1 + NS4 + NB4 CASE t = "P" p = p + NB1 + NS4 + NB4 CASE t = "Q" p = p + NB2 + NS3 + WB3 CASE t = "R" p = p + WB1 + NS3 + WB4 CASE t = "S" p = p + NB1 + NS3 + WB4 CASE t = "T" p = p + NB2 + NS4 + WB4 CASE t = "U" p = p + WB4 + NS3 + NB1 CASE t = "V" p = p + NB3 + NS3 + NB1 CASE t = "W" p = p + WB3 + NS3 + NB2 CASE t = "X" p = p + NB4 + NS4 + NB1 CASE t = "Y" p = p + WB4 + NS4 + NB2 CASE
Ok, esto te funcinaría en VFP7 si mandas la impresipon directa al puerto, pero por supuesto habría que programar más. Busca en esta página: http://www.ent.ohiou.edu/~amable/autoid.html seguramente encontrarás algo que te ayude. Hasta pronto.