Codigo de Barras

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
1
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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas