Generar barcode con visual basic

Iniciado por hunter18, 18 Octubre 2010, 02:24 AM

0 Miembros y 1 Visitante están viendo este tema.

hunter18

1ero para que una empresa utilize el "EAN 13" necesita estar registrado en alguna entidad?

Una vez generado el codigo de barra como las imprimo en que papel o acaso mediante una imprenta por que por ahi leí que ofrecian  por la compra de un lector de codigo de barras un software para crear e imprimir etiquetas(osea hacerlo uno mismo).

Por otro lado donde descargo el codigo fuente de "code 128" para vb6.0

BlackZeroX

.
Es este el code 128...

http://infrangelux.sytes.net/FileX/index.php?dir=/BlackZeroX/BarCodes/Code%20128&file=code128.ttf

P.D.: No se mucho del tema pero Creo que puede ser con cualquier papel... mientras te lo pueda leer!¡.

Dulces Lunas!¡
The Dark Shadow is my passion.

Elemental Code

Los lectores de codigo de barras usan un barrido laser medio raro

Puede ser cualquier papel mientras que no sea ojo o amarillo.

;D ;D ;D

Al fin me sirvio de algo prestar atencion en la esc

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas

hunter18

Entonces no hay que programar nada? :silbar: y solo se puede utilizar un tipo de fuente y listo, no creo!

He visto varios tipo de fuente que simulan codigo de barras como "3OF9.TTF" y "code128 de BlackZeroX" pero que pasa si el lector de codigo de barra no lo reconoce.

Por otro lado por que hay programas de pago para esto si solo se trata de un tipo de letra, no se mucho del tema espero alguien puede orientar un poco.

Alguien que haya utilizado un lector de codigo de barra para buscar un producto y el code128 para generar la etiquetas con el codigo.


En cuanto a EAN13 segun wikipedia me da este codigo vb6.0

'Cálculo del dígito de control EAN
Dim iSum As Integer = 0
Dim iDigit As Integer = 0
Dim EAN As String = "123456789041"    'EAN de prueba

For i As Integer = EAN.Length To 1 Step -1
    iDigit = Convert.ToInt32(EAN.Substring(i - 1, 1))
    If (EAN.Length - i + 1) Mod 2 <> 0 Then
        iSum += iDigit * 3
    Else
        iSum += iDigit
    End If
Next

Dim iCheckSum As Integer = (10 - (iSum Mod 10)) Mod 10
Console.Write("Dígito de control: " & iCheckSum.ToString())



Angeldj27

Una vez encontre el un code y lo tire en mi libreria nunca la probe y no c si es EAN13 pero talves te ayude chekalo y dejas saber
Código (vb) [Seleccionar]

Private Sub DrawBarcode(ByVal bc_string As String, sDescripcion As String, VLPrecio As String, obj As Control)

    Dim xpos!, y1!, y2!, dw%, th!, tw, new_string$
    Dim bc(90) As String
    Dim sAux As String
    Dim I As Byte
   
    bc(1) = "1 1221" 'pre-amble
    bc(2) = "1 1221" 'post-amble
    bc(48) = "11 221" 'dígitos
    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"
   
    'Letras Mayúsculas
    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
   
    'Misceláneos Caracteres
    bc(32) = "1 2121" 'Espacio
    bc(35) = "" '# no se puede realizar
    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) = "" '@ no se puede realizar
    bc(65) = "1 1221" '*
   
    bc_string = UCase(bc_string) 'Convertir a mayúsculas
   
    'Dimensiones
    obj.ScaleMode = 2 'Pixeles
    obj.Cls
    obj.Picture = Nothing
    dw = CInt(obj.ScaleHeight / 40) 'Espacio entre barras
    If dw < 1 Then dw = 1
    th = obj.TextHeight(bc_string) 'Alto texto
    tw = obj.TextWidth(bc_string) 'Ancho texto
    new_string = Chr$(1) & bc_string & Chr$(2) 'Agregar pre-amble, post-amble
    y1 = obj.ScaleTop + 12
    y2 = obj.ScaleTop + obj.ScaleHeight - 1.5 * th
    obj.Width = 1.1 * Len(new_string) * (15 * dw) * obj.Width / obj.ScaleWidth
   
    'Dibujar cada caracter en el string barcode
    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)
            'Dibujar cada barra
            For I = 1 To Len(bc_pattern$)
                Select Case Mid(bc_pattern$, I, 1)
                Case " "
                    'Espacio
                    obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
                    xpos = xpos + dw
                Case "1"
                    'Espacio
                    obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
                    xpos = xpos + dw
                    'Línea
                    obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &H0&, BF
                    xpos = xpos + dw
                Case "2"
                    'Espacio
                    obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
                    xpos = xpos + dw
                    'Ancho línea
                    obj.Line (xpos, y1)-(xpos + 2 * dw, y2), &H0&, BF
                    xpos = xpos + 2 * dw
                End Select
            Next
    Next
   
    'Mas espacio
    obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
    xpos = xpos + dw
   
    'Medida final y tamaño
    obj.Width = (xpos + dw) * obj.Width / obj.ScaleWidth
    obj.CurrentX = 1
    obj.CurrentY = 1
    If VLPrecio = "0.00" Then VLPrecio = ""
    If xpos - obj.TextWidth(VLPrecio) - 10 < obj.TextWidth(sDescripcion) Then
        sAux = ""
        For I = 1 To Len(sDescripcion)
            If xpos - obj.TextWidth(VLPrecio) - 10 < obj.TextWidth(sAux) Then
                Exit For
            Else
                sAux = sAux & Mid(sDescripcion, I, 1)
            End If
        Next I
        obj.Print sAux
    Else
        obj.Print sDescripcion
    End If
    obj.CurrentX = xpos - obj.TextWidth(VLPrecio)
    obj.CurrentY = 1
    obj.Print VLPrecio
    obj.CurrentX = (obj.ScaleWidth - tw) / 2
    obj.CurrentY = y2 + 0.25 * th
    obj.Print bc_string
   
    'Copiar a clipboard
    obj.Picture = obj.Image
    Clipboard.Clear
    Clipboard.SetData obj.Image, 2

End Sub
Private Sub Command1_Click()
    Call DrawBarcode(Trim("123456"), Trim("Cascara de Mango"), "0.00", Picture1)
End Sub


Yo uso un lenguaje llamado Clarion y solo le pones el font del bar code que quieres y listo y tambien cristal report tambien le das el font y listo yo tengo un soft para colegios y el carnet lo genero con un font en cristal y listo..

Saludos...


"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!

hunter18

Hola Angeldj27 ya habia encontrado ese codigo y no es EAN13 ni CODE128 pero por lo que veo si se pueden crear codigos de barra sin necesidad de fuentes, haber si alguien tiene algo por ahi, saludos

BlackZeroX

.
Solo que imagenes, y manejando graficos directamente!¡... Asi que si no bueno. quizas aya otra forma mas nativa pero hasta no demostrar lo contrario...

Dulce Lunas!¡.
The Dark Shadow is my passion.

hunter18

Al parecer lo mejor y mas practico es utilizar tipos de fuente, aunque he bajado programas como datawareBarcode,zonerBarcode y un ocx llamado TBarCode4.ocx que al parecer no utilizan fuentes, lastima el ocx sea trial por que aparece una linea orizontal en crear el barcode y asumo que es trial o demo.

cobein

Ahi arme un modulo de clase para dibujar barcode128 B , http://cobein.com/wp/?p=631 es bastante simple asi que cualquier extra lo dejo para el ususrio AKA mejorar la funcion de dibujado etc.
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Compilation

The Data Matrix Barcode Add-In for Excel is an advanced and efficient Data Matrix generation component specifically designed for Excel 2007 and 2010. It is able to create 2d matrix barcode label in MS Excel.