vb.net2003实现条形码显示扫描不出来,高手指点

lcq_6075217 2014-09-12 05:52:42
文本控件 显示字符串 picturebox控件 显示条形码

程序 PrintCodeB(lcoilno.Text, e, Color.Black)

lcoilno.Text文本控件 ‘47A123456789’


code128.vb 中代码111111111111111111111111111

Public fimage As New Bitmap(160, 32)

Public flagGraphics As Graphics = Graphics.FromImage(fimage)

Dim printForm As New FrmLabelNew
Sub New()
CodeDef(0) = (New CodeByte("SP", "SP", "00", "11011001100"))
CodeDef(1) = (New CodeByte("!", "!", "01", "11001101100"))
CodeDef(2) = (New CodeByte("""", """", "02", "11001100110"))
CodeDef(3) = (New CodeByte("#", "#", "03", "10010011000"))
CodeDef(4) = (New CodeByte("$", "$", "04", "10010001100"))
CodeDef(5) = (New CodeByte("%", "%", "05", "10001001100"))
CodeDef(6) = (New CodeByte("&", "&", "06", "10011001000"))
CodeDef(7) = (New CodeByte("'", "'", "07", "10011000100"))
CodeDef(8) = (New CodeByte("(", "(", "08", "10001100100"))
CodeDef(9) = (New CodeByte(")", ")", "09", "11001001000"))
CodeDef(10) = (New CodeByte("*", "*", "10", "11001000100"))
CodeDef(11) = (New CodeByte("+", "+", "11", "11000100100"))
CodeDef(12) = (New CodeByte(",", ",", "12", "10110011100"))
CodeDef(13) = (New CodeByte("-", "-", "13", "10011011100"))
CodeDef(14) = (New CodeByte(".", ".", "14", "10011001110"))
CodeDef(15) = (New CodeByte("/", "/", "15", "10111001100"))
CodeDef(16) = (New CodeByte("0", "0", "16", "10011101100"))
CodeDef(17) = (New CodeByte("1", "1", "17", "10011100110"))
CodeDef(18) = (New CodeByte("2", "2", "18", "11001110010"))
CodeDef(19) = (New CodeByte("3", "3", "19", "11001011100"))
CodeDef(20) = (New CodeByte("4", "4", "20", "11001001110"))
CodeDef(21) = (New CodeByte("5", "5", "21", "11011100100"))
CodeDef(22) = (New CodeByte("6", "6", "22", "11001110100"))
CodeDef(23) = (New CodeByte("7", "7", "23", "11101101110"))
CodeDef(24) = (New CodeByte("8", "8", "24", "11101001100"))
CodeDef(25) = (New CodeByte("9", "9", "25", "11100101100"))
CodeDef(26) = (New CodeByte(":", ":", "26", "11100100110"))
CodeDef(27) = (New CodeByte(";", ";", "27", "11101100100"))
CodeDef(28) = (New CodeByte("<", "<", "28", "11100110100"))
CodeDef(29) = (New CodeByte("=", "=", "29", "11100110010"))
CodeDef(30) = (New CodeByte(">", ">", "30", "11011011000"))
CodeDef(31) = (New CodeByte("?", "?", "31", "11011000110"))
CodeDef(32) = (New CodeByte("@", "@", "32", "11000110110"))
CodeDef(33) = (New CodeByte("A", "A", "33", "10100011000"))
CodeDef(34) = (New CodeByte("B", "B", "34", "10001011000"))
CodeDef(35) = (New CodeByte("C", "C", "35", "10001000110"))
CodeDef(36) = (New CodeByte("D", "D", "36", "10110001000"))
CodeDef(37) = (New CodeByte("E", "E", "37", "10001101000"))
CodeDef(38) = (New CodeByte("F", "F", "38", "10001100010"))
CodeDef(39) = (New CodeByte("G", "G", "39", "11010001000"))
CodeDef(40) = (New CodeByte("H", "H", "40", "11000101000"))
CodeDef(41) = (New CodeByte("I", "I", "41", "11000100010"))
CodeDef(42) = (New CodeByte("J", "J", "42", "10110111000"))
CodeDef(43) = (New CodeByte("K", "K", "43", "10110001110"))
CodeDef(44) = (New CodeByte("L", "L", "44", "10001101110"))
CodeDef(45) = (New CodeByte("M", "M", "45", "10111011000"))
CodeDef(46) = (New CodeByte("N", "N", "46", "10111000110"))
CodeDef(47) = (New CodeByte("O", "O", "47", "10001110110"))
CodeDef(48) = (New CodeByte("P", "P", "48", "11101110110"))
CodeDef(49) = (New CodeByte("Q", "Q", "49", "11010001110"))
CodeDef(50) = (New CodeByte("R", "R", "50", "11000101110"))
CodeDef(51) = (New CodeByte("S", "S", "51", "11011101000"))
CodeDef(52) = (New CodeByte("T", "T", "52", "11011100010"))
CodeDef(53) = (New CodeByte("U", "U", "53", "11011101110"))
CodeDef(54) = (New CodeByte("V", "V", "54", "11101011000"))
CodeDef(55) = (New CodeByte("W", "W", "55", "11101000110"))
CodeDef(56) = (New CodeByte("X", "X", "56", "11100010110"))
CodeDef(57) = (New CodeByte("Y", "Y", "57", "11101101000"))
CodeDef(58) = (New CodeByte("Z", "Z", "58", "11101100010"))
CodeDef(59) = (New CodeByte("[", "[", "59", "11100011010"))
CodeDef(60) = (New CodeByte("\", "\", "60", "11101111010"))
CodeDef(61) = (New CodeByte("]", "]", "61", "11001000010"))
CodeDef(62) = (New CodeByte("^", "^", "62", "11110001010"))
CodeDef(63) = (New CodeByte("_", "_", "63", "10100110000"))
CodeDef(64) = (New CodeByte("NUL", "`", "64", "10100001100"))
CodeDef(65) = (New CodeByte("SOH", "a", "65", "10010110000"))
CodeDef(66) = (New CodeByte("STX", "b", "66", "10010000110"))
CodeDef(67) = (New CodeByte("ETX", "c", "67", "10000101100"))
CodeDef(68) = (New CodeByte("EOT", "d", "68", "10000100110"))
CodeDef(69) = (New CodeByte("ENQ", "e", "69", "10110010000"))
CodeDef(70) = (New CodeByte("ACK", "f", "70", "10110000100"))
CodeDef(71) = (New CodeByte("BEL", "g", "71", "10011010000"))
CodeDef(72) = (New CodeByte("BS", "h", "72", "10011000010"))
CodeDef(73) = (New CodeByte("HT", "I", "73", "10000110100"))
CodeDef(74) = (New CodeByte("LF", "j", "74", "10000110010"))
CodeDef(75) = (New CodeByte("VT", "k", "75", "11000010010"))
CodeDef(76) = (New CodeByte("FF", "l", "76", "11001010000"))
CodeDef(76) = (New CodeByte("FF", "l", "76", "11001010000"))
CodeDef(77) = (New CodeByte("CR", "m", "77", "11110111010"))
CodeDef(78) = (New CodeByte("SO", "n", "78", "11000010100"))
CodeDef(79) = (New CodeByte("SI", "o", "79", "10001111010"))
CodeDef(80) = (New CodeByte("DLE", "p", "80", "10100111100"))
CodeDef(81) = (New CodeByte("DC1", "q", "81", "10010111100"))
CodeDef(82) = (New CodeByte("DC2", "r", "82", "10010011110"))
CodeDef(83) = (New CodeByte("DC3", "s", "83", "10111100100"))
CodeDef(84) = (New CodeByte("DC4", "t", "84", "10011110100"))
CodeDef(85) = (New CodeByte("NAK", "u", "85", "10011110010"))
CodeDef(86) = (New CodeByte("SYN", "v", "86", "11110100100"))
CodeDef(87) = (New CodeByte("ETB", "w", "87", "11110010100"))
CodeDef(88) = (New CodeByte("CAN", "x", "88", "11110010010"))
CodeDef(89) = (New CodeByte("EM", "y", "89", "11011011110"))
CodeDef(90) = (New CodeByte("SUB", "z", "90", "11011110110"))
CodeDef(91) = (New CodeByte("ESC", "{", "91", "11110110110"))
CodeDef(92) = (New CodeByte("FS", "|", "92", "10101111000"))
CodeDef(93) = (New CodeByte("GS", "}", "93", "10100011110"))
CodeDef(94) = (New CodeByte("RS", "~", "94", "10001011110"))
CodeDef(95) = (New CodeByte("US", "DEL", "95", "10111101000"))
CodeDef(96) = (New CodeByte("FNC3", "FNC3", "96", "10111100010"))
CodeDef(97) = (New CodeByte("FNC2", "FNC2", "97", "11110101000"))
CodeDef(98) = (New CodeByte("SHIFT", "SHIFT", "98", "11110100010"))
CodeDef(99) = (New CodeByte("CodeC", "CodeC", "99", "10111011110"))
CodeDef(100) = (New CodeByte("CodeB", "FNC4", "CodeB", "10111101110"))
CodeDef(101) = (New CodeByte("FNC4", "CodeA", "CodeA", "11101011110"))
CodeDef(102) = (New CodeByte("FNC1", "FNC1", "FNC1", "11110101110"))
CodeDef(103) = (New CodeByte("STARTA", "STARTA", "STARTA", "11010000100"))
CodeDef(104) = (New CodeByte("STARTB", "STARTB", "STARTB", "11010010000"))
CodeDef(105) = (New CodeByte("STARTC", "STARTC", "STARTC", "11010011100"))
CodeDef(106) = (New CodeByte("STOP", "STOP", "STOP", "1100011101011"))
End Sub

Private CodeDef(106) As CodeByte

Private Class CodeByte
Public CodeA As String, CodeB As String, CodeC As String, Data As String
Sub New(ByVal CodeA As String, ByVal CodeB As String, ByVal CodeC As String, ByVal Data As String)
Me.CodeA = CodeA : Me.CodeB = CodeB : Me.CodeC = CodeC : Me.Data = Data
End Sub
End Class

Private Function GetDateB(ByRef FindChar As String) As Integer
Dim i As Integer
For i = 0 To 102
If CodeDef(i).CodeB = FindChar Then FindChar = CodeDef(i).Data : Return i
Next
FindChar = "" : Return -1
End Function

Public Sub PrintCodeB(ByVal Data As String, ByVal e As System.Windows.Forms.PaintEventArgs, ByVal Color As Drawing.Color)
Dim CodeData As String = CodeDef(104).Data, i As Integer = 0, id As Integer = 0, Calibration As Integer = 104 '"STARTB"的ID
'Dim c As String in Date



For Each c1 As String In Data
id = GetDateB(c1)
If id >= 0 Then
CodeData &= c1
i += 1
Calibration += i * id
End If
Next
CodeData &= CodeDef(Calibration Mod 103).Data & CodeDef(106).Data
i = 0

Dim w As Single = (e.ClipRectangle.Width) / CodeData.Length
Dim c As Char
For Each c In CodeData
If c = "1" Then flagGraphics.FillRectangle(New Drawing.SolidBrush(Color), e.ClipRectangle.Left + i * w, e.ClipRectangle.Top, w, e.ClipRectangle.Height)
i += 1
Next
'printForm.PictureBox2.Image = fimage
e.Graphics.DrawImage(fimage, New PointF(e.ClipRectangle.Left, e.ClipRectangle.Top))


End Sub

End Module

...全文
248 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2014-09-13
  • 打赏
  • 举报
回复
两个对相同原编码产生的条形码分别截图看看。对比差异。
lcq_6075217 2014-09-13
  • 打赏
  • 举报
回复
打印了 扫描不出来 2005在电脑上也能扫描出来
lcq_6075217 2014-09-13
  • 打赏
  • 举报
回复
vb.net2003生成的条码需要把picturebox控件 宽度、高度调高才能扫描出来 ??窄了扫不出来
threenewbee 2014-09-12
  • 打赏
  • 举报
回复
打印在纸上看看能不能扫描出来,另外看看VB2005和VB.NET2003产生的条码图形是否一样。 反正我以前搞条码,在显示器上就是扫不出来,打印出来就没问题。
lcq_6075217 2014-09-12
  • 打赏
  • 举报
回复
补充一句vb.net2005中相同程序能扫描出来 2003就扫描不出来怎么回事

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧