comment
IRC Chat
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
  • 4500 Vistas

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

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5380
  • Actividad:
    81.67%
  • Reputación 31
  • 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)
 
 
No tienes permisos para ver links. Registrate o Entra con tu cuenta
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: 1809
Ú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: 4917
Último mensaje Julio 26, 2010, 11:13:17 am
por ANTRAX
Cómo detectar errores en Visual Basic

Iniciado por ANTRAX

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

Iniciado por xxcourtry77xx

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