Visual Basic - Codigo de Barras

Life is soft - evento anual de software empresarial
   
Vista:

Codigo de Barras

Publicado por Sergio Alberto (7 intervenciones) el 27/02/2008 03:47:41
Hola a todos es pero que alguien me pueda orientar.
estoy realizando un programa de control bibliotecario el cual necesito manejar codigos de barra para las credenciales de los usuarios. el problema es ese no se como hacer que el programa que estoy haciendo genere codigos de barras alguien me podra ayudar con un ejemplo o algo parecido
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Codigo de Barras

Publicado por Carina (18 intervenciones) el 27/02/2008 18:44:41
Hola Sergio: yo hice lo siguiente y funciona bien, lo unico trata de imprimir en una laser.
Crea un textbox (text1) y un picturebox (picture1) y un boton (cmdPrint) en un form.
en el form pone el siguiente codigo

Private Sub Text1_Change()

Call DrawBarcode(Text1, Picture1)

MinWidth = 2 * Text1.Left + Text1.Width
pw = 2 * Picture1.Left + Picture1.Width
fw = MinWidth
If pw > fw Then fw = pw
frmCodigoBarra.Width = fw

End Sub

Private Sub cmdPrint_Click()
On Error Resume Next

Printer.PaintPicture Picture1, 5000, 5000
Printer.EndDoc

End Sub

///////////////////////////////////////////////////////////////////////////
MODULO
//////////////////////////////////////////////////////////////////////////
Sub DrawBarcode(ByVal bc_string As String, obj As Control)

Dim xpos!, y1!, y2!, dw%, th!, tw, new_string$

'define barcode patterns
Dim bc(90) As String
bc(1) = "1 1221" 'pre-amble
bc(2) = "1 1221" 'post-amble
bc(48) = "11 221" 'digits
bc(49) = "21 112"
bc(50) = "12 112"
bc(51) = "22 111"
bc(52) = "11 212"
bc(53) = "21 211"
bc(54) = "12 211"
bc(55) = "11 122"
bc(56) = "21 121"
bc(57) = "12 121"
'capital letters
bc(65) = "211 12" 'A
bc(66) = "121 12" 'B
bc(67) = "221 11" 'C
bc(68) = "112 12" 'D
bc(69) = "212 11" 'E
bc(70) = "122 11" 'F
bc(71) = "111 22" 'G
bc(72) = "211 21" 'H
bc(73) = "121 21" 'I
bc(74) = "112 21" 'J
bc(75) = "2111 2" 'K
bc(76) = "1211 2" 'L
bc(77) = "2211 1" 'M
bc(78) = "1121 2" 'N
bc(79) = "2121 1" 'O
bc(80) = "1221 1" 'P
bc(81) = "1112 2" 'Q
bc(82) = "2112 1" 'R
bc(83) = "1212 1" 'S
bc(84) = "1122 1" 'T
bc(85) = "2 1112" 'U
bc(86) = "1 2112" 'V
bc(87) = "2 2111" 'W
bc(88) = "1 1212" 'X
bc(89) = "2 1211" 'Y
bc(90) = "1 2211" 'Z
'Misc
bc(32) = "1 2121" 'space
bc(35) = "" '# cannot do!
bc(36) = "1 1 1 11" '$
bc(37) = "11 1 1 1" '%
bc(43) = "1 11 1 1" '+
bc(45) = "1 1122" '-
bc(47) = "1 1 11 1" '/
bc(46) = "2 1121" '.
bc(64) = "" '@ cannot do!
bc(65) = "1 1221" '*



bc_string = UCase(bc_string)


'dimensions
obj.ScaleMode = 3 'pixels
obj.Cls
obj.Picture = Nothing
dw = CInt(obj.ScaleHeight / 40) 'space between bars
If dw < 1 Then dw = 1
'Debug.Print dw
th = obj.TextHeight(bc_string) 'text height
tw = obj.TextWidth(bc_string) 'text width
new_string = Chr$(1) & bc_string & Chr$(2) 'add pre-amble, post-amble

y1 = obj.ScaleTop
y2 = obj.ScaleTop + obj.ScaleHeight - 1.5 * th
obj.Width = 1.1 * Len(new_string) * (15 * dw) * obj.Width / obj.ScaleWidth


'draw each character in barcode string
xpos = obj.ScaleLeft
For n = 1 To Len(new_string)
c = Asc(Mid$(new_string, n, 1))
If c > 90 Then c = 0
bc_pattern$ = bc(c)

'draw each bar
For i = 1 To Len(bc_pattern$)
Select Case Mid$(bc_pattern$, i, 1)
Case " "
'space
obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
xpos = xpos + dw

Case "1"
'space
obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
xpos = xpos + dw
'line
obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &H0&, BF
xpos = xpos + dw

Case "2"
'space
obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
xpos = xpos + dw
'wide line
obj.Line (xpos, y1)-(xpos + 2 * dw, y2), &H0&, BF
xpos = xpos + 2 * dw
End Select
Next
Next

'1 more space
obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
xpos = xpos + dw

'final size and text
obj.Width = (xpos + dw) * obj.Width / obj.ScaleWidth
obj.CurrentX = (obj.ScaleWidth - tw) / 2
obj.CurrentY = y2 + 0.25 * th
obj.Print bc_string

'copy to clipboard
obj.Picture = obj.Image
Clipboard.Clear
Clipboard.SetData obj.Image, 2


End Sub

Suerte, espero que te sirva...
Saludos
Carina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Codigo de Barras

Publicado por gustavo (218 intervenciones) el 27/02/2008 19:28:08
DISCULPA, ME INTEERESA EL TEMA, EL PICTURE DEBERIA MOSTRAR EL CODIGO DE BARRAS A MEDIDA QUE SE INTRODUCE EL TEXTO?, PERO NO LO MUESTRA?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Codigo de Barras

Publicado por Carina (18 intervenciones) el 27/02/2008 19:58:08
Gustavo, deberia mostrarlo.... me olvide de una parte...
agrega tres optionbutton llamalo optSize(0) (Pequeño), optSize(1) (mediano), optsize(2) (Grande) y en el form agrega el siguiente codigo..

Private Sub optSize_Click(Index As Integer)
Picture1.ScaleMode = 3

Select Case Index
Case 0
Picture1.Height = Picture1.Height * (1.4 * 40 / Picture1.ScaleHeight)
Picture1.FontSize = 8
Case 1
Picture1.Height = Picture1.Height * (2.4 * 40 / Picture1.ScaleHeight)
Picture1.FontSize = 10
Case 2
Picture1.Height = Picture1.Height * (3 * 40 / Picture1.ScaleHeight)
Picture1.FontSize = 14
End Select

Call Text1_Change

End Sub

Fijate si era eso lo que faltaba... ahora si ya esta completo..
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Codigo de Barras

Publicado por Sergio (7 intervenciones) el 28/02/2008 03:05:52
no . lo que necesito es que imprima o generar codigos de barras para unas credenciales de los usuarios de la biblioteca.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

UN MOENTO

Publicado por Carlos (125 intervenciones) el 27/02/2008 21:11:33
Ya va, tu quieres generar codigos de letras o leerlos !?, si lo quieres leer lo unico que tienes que hacer es pasar el lector por el codigo y que en tu programa este en un cuadro de texto... ahora bien si lo que quieres es transformar XXXX numeracion y/o texto en codigo de barra, lo unico que tienes que hacer es cambiarle el formato a la letra
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:UN MOENTO

Publicado por El Charolo (1 intervención) el 27/02/2008 22:17:44
¡O sea ...!
Siempre has de salir con una "jalada" de las tuyas (o babosada, como me has dicho)...
Sergio Alberto dice: "no se como hacer que el programa que estoy haciendo GENERE codigos de barras "
¿Qué es lo que entiendes por ello? o, mejor dicho ¿por qué no lo entiendes?
Y ¡vaya!, con esta parte de tu "respuesta"! "lo unico que tienes que hacer es cambiarle el formato a la letra "
¿Eso es lo único que tendría que hacer? Porque para ello necesitaría tener instalada alguna fuente o tipo de letra de códigos de barra
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cierto

Publicado por info (23 intervenciones) el 27/02/2008 22:38:41
En parte tenes la razon.

Pero es muy cierto debe tener una fuente BarCode y nada mas.

Solo intervengo porque estas preguntas y otras MUY COMUNES las puedes solucionar usando el puto google.

No lo tomes a mal, pero:

http://www.usaelputogoogle.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Codigo de Barras

Publicado por Sergio (7 intervenciones) el 28/02/2008 04:59:56
Muchas Gracias Esta Muy Bueno Tu Ejemplo.
Pero Todavia Me Quedo Una Duda Por Que No Lo Puede Dejer Visible. Solo Lo Muestra y De Imediato Lo Borra.
No Hace Una Pausa
y El Boton Cual Es Su Funcion Por Que No Veo Que Aga Algo o Mas Bien Dicho No Noto La Diferencia.
Bueno Muchas Gracias De Todos Modos
Bye Te Cuidas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar