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.

Dibujar Codigo de Barras (Bar Code)

  • 0 Respuestas
  • 1283 Vistas

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

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5396
  • Actividad:
    36.67%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Julio 26, 2010, 11:01:14 am »
El codigo a continuación tiene un Procedimiento llamado
DrawBarCode, el cual recibe el codigo del item, la descripción del mismo y un control PictureBox, el cual contendrá el codigo de barras.

Sólo debes diseñar un form con 3 controles (2 textBox y 1 PictureBox), luego
ejecutas

Call DrawBarcode(codigo_item, Descripcion_item, PictureBox)

Código: Visual Basic
  1. Sub DrawBarcode(ByVal bc_string As String, sDescripcion As String, VLPrecio as String, obj As Control)
  2.  
  3. Dim xpos!, y1!, y2!, dw%, th!, tw, new_string$
  4. Dim bc(90) As String
  5. Dim sAux As String
  6. Dim I As Byte
  7.  
  8. bc(1) = "1 1221" 'pre-amble
  9. bc(2) = "1 1221" 'post-amble
  10. bc(48) = "11 221" 'dígitos
  11. bc(49) = "21 112"
  12. bc(50) = "12 112"
  13. bc(51) = "22 111"
  14. bc(52) = "11 212"
  15. bc(53) = "21 211"
  16. bc(54) = "12 211"
  17. bc(55) = "11 122"
  18. bc(56) = "21 121"
  19. bc(57) = "12 121"
  20. 'Letras Mayúsculas
  21. bc(65) = "211 12" 'A
  22. bc(66) = "121 12" 'B
  23. bc(67) = "221 11" 'C
  24. bc(68) = "112 12" 'D
  25. bc(69) = "212 11" 'E
  26. bc(70) = "122 11" 'F
  27. bc(71) = "111 22" 'G
  28. bc(72) = "211 21" 'H
  29. bc(73) = "121 21" 'I
  30. bc(74) = "112 21" 'J
  31. bc(75) = "2111 2" 'K
  32. bc(76) = "1211 2" 'L
  33. bc(77) = "2211 1" 'M
  34. bc(78) = "1121 2" 'N
  35. bc(79) = "2121 1" 'O
  36. bc(80) = "1221 1" 'P
  37. bc(81) = "1112 2" 'Q
  38. bc(82) = "2112 1" 'R
  39. bc(83) = "1212 1" 'S
  40. bc(84) = "1122 1" 'T
  41. bc(85) = "2 1112" 'U
  42. bc(86) = "1 2112" 'V
  43. bc(87) = "2 2111" 'W
  44. bc(88) = "1 1212" 'X
  45. bc(89) = "2 1211" 'Y
  46. bc(90) = "1 2211" 'Z
  47. 'Misceláneos Caracteres
  48. bc(32) = "1 2121" 'Espacio
  49. bc(35) = "" '# no se puede realizar
  50. bc(36) = "1 1 1 11" '$
  51. bc(37) = "11 1 1 1" '%
  52. bc(43) = "1 11 1 1" '+
  53. bc(45) = "1 1122" '-
  54. bc(47) = "1 1 11 1" '/
  55. bc(46) = "2 1121" '.
  56. bc(64) = "" '@ no se puede realizar
  57. bc(65) = "1 1221" '*
  58.  
  59. bc_string = UCase(bc_string) 'Convertir a mayúsculas
  60.  
  61. 'Dimensiones
  62. obj.ScaleMode = 2 'Pixeles
  63. obj.Cls
  64. obj.Picture = Nothing
  65. dw = CInt(obj.ScaleHeight / 40) 'Espacio entre barras
  66. If dw < 1 Then dw = 1
  67. th = obj.TextHeight(bc_string) 'Alto texto
  68. tw = obj.TextWidth(bc_string) 'Ancho texto
  69. new_string = Chr$(1) & bc_string & Chr$(2) 'Agregar pre-amble, post-amble
  70. y1 = obj.ScaleTop + 12
  71. y2 = obj.ScaleTop + obj.ScaleHeight - 1.5 * th
  72. obj.Width = 1.1 * Len(new_string) * (15 * dw) * obj.Width / obj.ScaleWidth
  73.  
  74. 'Dibujar cada caracter en el string barcode
  75. xpos = obj.ScaleLeft
  76. For n = 1 To Len(new_string)
  77. c = Asc(Mid(new_string, n, 1))
  78. If c > 90 Then c = 0
  79. bc_pattern$ = bc(c)
  80. 'Dibujar cada barra
  81. For I = 1 To Len(bc_pattern$)
  82. Select Case Mid(bc_pattern$, I, 1)
  83. Case " "
  84. 'Espacio
  85. obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
  86. xpos = xpos + dw
  87. Case "1"
  88. 'Espacio
  89. obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
  90. xpos = xpos + dw
  91. 'Línea
  92. obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &H0&, BF
  93. xpos = xpos + dw
  94. Case "2"
  95. 'Espacio
  96. obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
  97. xpos = xpos + dw
  98. 'Ancho línea
  99. obj.Line (xpos, y1)-(xpos + 2 * dw, y2), &H0&, BF
  100. xpos = xpos + 2 * dw
  101. End Select
  102. Next
  103. Next
  104.  
  105. 'Mas espacio
  106. obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
  107. xpos = xpos + dw
  108.  
  109. 'Medida final y tamaño
  110. obj.Width = (xpos + dw) * obj.Width / obj.ScaleWidth
  111. obj.CurrentX = 1
  112. obj.CurrentY = 1
  113. If VLPrecio = "0.00" Then VLPrecio = ""
  114. If xpos - obj.TextWidth(VLPrecio) - 10 < obj.TextWidth(sDescripcion) Then
  115. sAux = ""
  116. For I = 1 To Len(sDescripcion)
  117. If xpos - obj.TextWidth(VLPrecio) - 10 < obj.TextWidth(sAux) Then
  118. Exit For
  119. Else
  120. sAux = sAux & Mid(sDescripcion, I, 1)
  121. End If
  122. Next I
  123. obj.Print sAux
  124. Else
  125. obj.Print sDescripcion
  126. End If
  127. obj.CurrentX = xpos - obj.TextWidth(VLPrecio)
  128. obj.CurrentY = 1
  129. obj.Print VLPrecio
  130. obj.CurrentX = (obj.ScaleWidth - tw) / 2
  131. obj.CurrentY = y2 + 0.25 * th
  132. obj.Print bc_string
  133.  
  134. 'Copiar a clipboard
  135. obj.Picture = obj.Image
  136. Clipboard.Clear
  137. Clipboard.SetData obj.Image, 2
  138. End Sub
« Última modificación: Julio 08, 2011, 10:10:47 am por ANTRAX »


 

¿Te gustó el post? COMPARTILO!



Compactar una base de datos, usando código VB

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1452
Último mensaje Julio 26, 2010, 10:47:07 am
por ANTRAX
[CrapCode] Codigo que tira rayos por los ojos.

Iniciado por 79137913

Respuestas: 0
Vistas: 1622
Último mensaje Febrero 07, 2013, 09:18:02 am
por 79137913
EAN13: Verificar y generar codigo de control

Iniciado por ANTRAX

Respuestas: 0
Vistas: 3277
Último mensaje Julio 26, 2010, 04:22:33 pm
por ANTRAX
Leer un Tag de un código HTML

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1193
Último mensaje Julio 26, 2010, 01:54:51 pm
por ANTRAX