send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Barcode en Visual Basic

  • 0 Respuestas
  • 4386 Vistas

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

Desconectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5283
  • Actividad:
    35%
  • Reputación 28
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Marzo 25, 2012, 10:01:25 am »
Creamos un proyecto nuevo en VB, y solo necesitaremos 3 controles y un modulo.
 
 Controles:
 * Textbox (txtID)
 * Picturebox (Picture1)
 * CommandButton (cmdPrint)
 
 
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Codigo del Modulo:

Código: Visual Basic
  1. Sub DrawBarcode(ByVal bc_string As String, obj As Control)
  2.      
  3.     Dim xpos!, Y1!, Y2!, dw%, th!, tw, new_string$
  4.      
  5.     'define barcode patterns
  6.    Dim bc(90) As String
  7.     bc(1) = "1 1221"            'pre-amble
  8.    bc(2) = "1 1221"            'post-amble
  9.    bc(48) = "11 221"           'digits
  10.    bc(49) = "21 112"
  11.     bc(50) = "12 112"
  12.     bc(51) = "22 111"
  13.     bc(52) = "11 212"
  14.     bc(53) = "21 211"
  15.     bc(54) = "12 211"
  16.     bc(55) = "11 122"
  17.     bc(56) = "21 121"
  18.     bc(57) = "12 121"
  19.                                 'capital letters
  20.    bc(65) = "211 12"           'A
  21.    bc(66) = "121 12"           'B
  22.    bc(67) = "221 11"           'C
  23.    bc(68) = "112 12"           'D
  24.    bc(69) = "212 11"           'E
  25.    bc(70) = "122 11"           'F
  26.    bc(71) = "111 22"           'G
  27.    bc(72) = "211 21"           'H
  28.    bc(73) = "121 21"           'I
  29.    bc(74) = "112 21"           'J
  30.    bc(75) = "2111 2"           'K
  31.    bc(76) = "1211 2"           'L
  32.    bc(77) = "2211 1"           'M
  33.    bc(78) = "1121 2"           'N
  34.    bc(79) = "2121 1"           'O
  35.    bc(80) = "1221 1"           'P
  36.    bc(81) = "1112 2"           'Q
  37.    bc(82) = "2112 1"           'R
  38.    bc(83) = "1212 1"           'S
  39.    bc(84) = "1122 1"           'T
  40.    bc(85) = "2 1112"           'U
  41.    bc(86) = "1 2112"           'V
  42.    bc(87) = "2 2111"           'W
  43.    bc(88) = "1 1212"           'X
  44.    bc(89) = "2 1211"           'Y
  45.    bc(90) = "1 2211"           'Z
  46.                                'Misc
  47.    bc(32) = "1 2121"           'space
  48.    bc(35) = ""                 '# cannot do!
  49.    bc(36) = "1 1 1 11"         '$
  50.    bc(37) = "11 1 1 1"         '%
  51.    bc(43) = "1 11 1 1"         '+
  52.    bc(45) = "1 1122"           '-
  53.    bc(47) = "1 1 11 1"         '/
  54.    bc(46) = "2 1121"           '.
  55.    bc(64) = ""                 '@ cannot do!
  56.    bc(65) = "1 1221"           '*
  57.    
  58.      
  59.      
  60.     bc_string = UCase(bc_string)
  61.      
  62.      
  63.     'dimensions
  64.    obj.ScaleMode = 3                               'pixels
  65.    obj.Cls
  66.     obj.Picture = Nothing
  67.     dw = CInt(obj.ScaleHeight / 40)                 'space between bars
  68.    If dw < 1 Then dw = 1
  69.     'Debug.Print dw
  70.    th = obj.TextHeight(bc_string)                  'text height
  71.    tw = obj.TextWidth(bc_string)                   'text width
  72.    new_string = Chr$(1) & bc_string & Chr$(2)      'add pre-amble, post-amble
  73.    
  74.     Y1 = obj.ScaleTop
  75.     Y2 = obj.ScaleTop + obj.ScaleHeight - 1.5 * th
  76.     obj.Width = 1.1 * Len(new_string) * (15 * dw) * obj.Width / obj.ScaleWidth
  77.      
  78.      
  79.     'draw each character in barcode string
  80.    xpos = obj.ScaleLeft
  81.     For n = 1 To Len(new_string)
  82.         c = Asc(Mid$(new_string, n, 1))
  83.         If c > 90 Then c = 0
  84.         bc_pattern$ = bc(c)
  85.          
  86.         'draw each bar
  87.        For i = 1 To Len(bc_pattern$)
  88.             Select Case Mid$(bc_pattern$, i, 1)
  89.                 Case " "
  90.                     'space
  91.                    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
  92.                     xpos = xpos + dw
  93.                      
  94.                 Case "1"
  95.                     'space
  96.                    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
  97.                     xpos = xpos + dw
  98.                     'line
  99.                    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &H0&, BF
  100.                     xpos = xpos + dw
  101.                  
  102.                 Case "2"
  103.                     'space
  104.                    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
  105.                     xpos = xpos + dw
  106.                     'wide line
  107.                    obj.Line (xpos, Y1)-(xpos + 2 * dw, Y2), &H0&, BF
  108.                     xpos = xpos + 2 * dw
  109.             End Select
  110.         Next
  111.     Next
  112.      
  113.     '1 more space
  114.    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
  115.     xpos = xpos + dw
  116.      
  117.     'final size and text
  118.    obj.Width = (xpos + dw) * obj.Width / obj.ScaleWidth
  119.     obj.CurrentX = (obj.ScaleWidth - tw) / 2
  120.     obj.CurrentY = Y2 + 0.25 * th
  121.     obj.Print bc_string
  122.      
  123.     'copy to clipboard
  124.    obj.Picture = obj.Image
  125.     Clipboard.Clear
  126.     Clipboard.SetData obj.Image, 2
  127.  
  128. End Sub

Codigo Fuente del CommandButton:

Código: Visual Basic
  1. 'Impresion del Barcode
  2. Private Sub cmdPrint_Click()
  3.  
  4.     Printer.PaintPicture Picture1, 100, 100
  5.     Printer.EndDoc
  6. End Sub

Codigo Fuente del TextBox:

Código: Visual Basic
  1. 'Escritura del barcode
  2. Private Sub txtID_Change()
  3.  
  4.     Picture1.Height = Picture1.Height * (1.4 * 40 / Picture1.ScaleHeight)
  5.     Picture1.FontSize = 8
  6.     Call DrawBarcode(txtID, Picture1)
  7.     Dim minwidth, pw, fw As Integer
  8.     minwidth = 2 * txtID.Left + txtID.Width
  9.     pw = 2 * Picture1.Left + Picture1.Width
  10.     fw = minwidth
  11.     If pw > fw Then fw = pw
  12.     frmAgregarProd.Width = fw
  13.      
  14. End Sub
« Última modificación: Mayo 12, 2014, 03:33:10 pm por Expermicid »


 

¿Te gustó el post? COMPARTILO!



Manual de como bloquear CTRL+ALT+SUP, ALT+TAB, Y OTROS con Visual Basic en WinXP

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1709
Último mensaje Julio 26, 2010, 11:11:14 am
por ANTRAX
Tipos de Conexiones a Bases de Datos en Visual Basic

Iniciado por ANTRAX

Respuestas: 0
Vistas: 4707
Último mensaje Julio 26, 2010, 11:13:17 am
por ANTRAX
Cómo detectar errores en Visual Basic

Iniciado por ANTRAX

Respuestas: 0
Vistas: 2019
Último mensaje Julio 26, 2010, 11:40:10 am
por ANTRAX
Visual Basic Phishing By C7 !

Iniciado por xxcourtry77xx

Respuestas: 0
Vistas: 1232
Último mensaje Mayo 01, 2010, 02:28:03 pm
por xxcourtry77xx