| :: How to Paint a ScanBar CODE39 on Printer or PictureBox |
Author |
Cesar Vezga |
Language |
VB5, VB6 |
Operating
Systems |
Windows 95, 98 and NT |
| Module |
'Put this code at a module.
'Usage: PaintCodeBar39 Printer, Xpos, Ypos, BarsHeight, WidthFactor, Text, HumanRead
' Printer.EndDoc
Public Type C39
char As String * 1
bar(1 To 5) As Boolean
spe(1 To 5) As Boolean ' 5th space for character gap
End Type
Dim CODE39(43) As C39
Sub InitArray()
CODE39(0).char = "0"
CODE39(0).bar(1) = False
CODE39(0).spe(1) = False
CODE39(0).bar(2) = False
CODE39(0).spe(2) = True
CODE39(0).bar(3) = True
CODE39(0).spe(3) = False
CODE39(0).bar(4) = True
CODE39(0).spe(4) = False
CODE39(0).bar(5) = False
CODE39(0).spe(5) = False
CODE39(1).char = "1"
CODE39(1).bar(1) = True
CODE39(1).spe(1) = False
CODE39(1).bar(2) = False
CODE39(1).spe(2) = True
CODE39(1).bar(3) = False
CODE39(1).spe(3) = False
CODE39(1).bar(4) = False
CODE39(1).spe(4) = False
CODE39(1).bar(5) = True
CODE39(1).spe(5) = False
CODE39(2).char = "2"
CODE39(2).bar(1) = False
CODE39(2).spe(1) = False
CODE39(2).bar(2) = True
CODE39(2).spe(2) = True
CODE39(2).bar(3) = False
CODE39(2).spe(3) = False
CODE39(2).bar(4) = False
CODE39(2).spe(4) = False
CODE39(2).bar(5) = True
CODE39(2).spe(5) = False
CODE39(3).char = "3"
CODE39(3).bar(1) = True
CODE39(3).spe(1) = False
CODE39(3).bar(2) = True
CODE39(3).spe(2) = True
CODE39(3).bar(3) = False
CODE39(3).spe(3) = False
CODE39(3).bar(4) = False
CODE39(3).spe(4) = False
CODE39(3).bar(5) = False
CODE39(3).spe(5) = False
CODE39(4).char = "4"
CODE39(4).bar(1) = False
CODE39(4).spe(1) = False
CODE39(4).bar(2) = False
CODE39(4).spe(2) = True
CODE39(4).bar(3) = True
CODE39(4).spe(3) = False
CODE39(4).bar(4) = False
CODE39(4).spe(4) = False
CODE39(4).bar(5) = True
CODE39(4).spe(5) = False
CODE39(5).char = "5"
CODE39(5).bar(1) = True
CODE39(5).spe(1) = False
CODE39(5).bar(2) = False
CODE39(5).spe(2) = True
CODE39(5).bar(3) = True
CODE39(5).spe(3) = False
CODE39(5).bar(4) = False
CODE39(5).spe(4) = False
CODE39(5).bar(5) = False
CODE39(5).spe(5) = False
CODE39(6).char = "6"
CODE39(6).bar(1) = False
CODE39(6).spe(1) = False
CODE39(6).bar(2) = True
CODE39(6).spe(2) = True
CODE39(6).bar(3) = True
CODE39(6).spe(3) = False
CODE39(6).bar(4) = False
CODE39(6).spe(4) = False
CODE39(6).bar(5) = False
CODE39(6).spe(5) = False
CODE39(7).char = "7"
CODE39(7).bar(1) = False
CODE39(7).spe(1) = False
CODE39(7).bar(2) = False
CODE39(7).spe(2) = True
CODE39(7).bar(3) = False
CODE39(7).spe(3) = False
CODE39(7).bar(4) = True
CODE39(7).spe(4) = False
CODE39(7).bar(5) = True
CODE39(7).spe(5) = False
CODE39(8).char = "8"
CODE39(8).bar(1) = True
CODE39(8).spe(1) = False
CODE39(8).bar(2) = False
CODE39(8).spe(2) = True
CODE39(8).bar(3) = False
CODE39(8).spe(3) = False
CODE39(8).bar(4) = True
CODE39(8).spe(4) = False
CODE39(8).bar(5) = False
CODE39(8).spe(5) = False
CODE39(9).char = "9"
CODE39(9).bar(1) = False
CODE39(9).spe(1) = False
CODE39(9).bar(2) = True
CODE39(9).spe(2) = True
CODE39(9).bar(3) = False
CODE39(9).spe(3) = False
CODE39(9).bar(4) = True
CODE39(9).spe(4) = False
CODE39(9).bar(5) = False
CODE39(9).spe(5) = False
CODE39(10).char = "A"
CODE39(10).bar(1) = True
CODE39(10).spe(1) = False
CODE39(10).bar(2) = False
CODE39(10).spe(2) = False
CODE39(10).bar(3) = False
CODE39(10).spe(3) = True
CODE39(10).bar(4) = False
CODE39(10).spe(4) = False
CODE39(10).bar(5) = True
CODE39(10).spe(5) = False
CODE39(11).char = "B"
CODE39(11).bar(1) = False
CODE39(11).spe(1) = False
CODE39(11).bar(2) = True
CODE39(11).spe(2) = False
CODE39(11).bar(3) = False
CODE39(11).spe(3) = True
CODE39(11).bar(4) = False
CODE39(11).spe(4) = False
CODE39(11).bar(5) = True
CODE39(11).spe(5) = False
CODE39(12).char = "C"
CODE39(12).bar(1) = True
CODE39(12).spe(1) = False
CODE39(12).bar(2) = True
CODE39(12).spe(2) = False
CODE39(12).bar(3) = False
CODE39(12).spe(3) = True
CODE39(12).bar(4) = False
CODE39(12).spe(4) = False
CODE39(12).bar(5) = False
CODE39(12).spe(5) = False
CODE39(13).char = "D"
CODE39(13).bar(1) = False
CODE39(13).spe(1) = False
CODE39(13).bar(2) = False
CODE39(13).spe(2) = False
CODE39(13).bar(3) = True
CODE39(13).spe(3) = True
CODE39(13).bar(4) = False
CODE39(13).spe(4) = False
CODE39(13).bar(5) = True
CODE39(13).spe(5) = False
CODE39(14).char = "E"
CODE39(14).bar(1) = True
CODE39(14).spe(1) = False
CODE39(14).bar(2) = False
CODE39(14).spe(2) = False
CODE39(14).bar(3) = True
CODE39(14).spe(3) = True
CODE39(14).bar(4) = False
CODE39(14).spe(4) = False
CODE39(14).bar(5) = False
CODE39(14).spe(5) = False
CODE39(15).char = "F"
CODE39(15).bar(1) = False
CODE39(15).spe(1) = False
CODE39(15).bar(2) = True
CODE39(15).spe(2) = False
CODE39(15).bar(3) = True
CODE39(15).spe(3) = True
CODE39(15).bar(4) = False
CODE39(15).spe(4) = False
CODE39(15).bar(5) = False
CODE39(15).spe(5) = False
CODE39(16).char = "G"
CODE39(16).bar(1) = False
CODE39(16).spe(1) = False
CODE39(16).bar(2) = False
CODE39(16).spe(2) = False
CODE39(16).bar(3) = False
CODE39(16).spe(3) = True
CODE39(16).bar(4) = True
CODE39(16).spe(4) = False
CODE39(16).bar(5) = True
CODE39(16).spe(5) = False
CODE39(17).char = "H"
CODE39(17).bar(1) = True
CODE39(17).spe(1) = False
CODE39(17).bar(2) = False
CODE39(17).spe(2) = False
CODE39(17).bar(3) = False
CODE39(17).spe(3) = True
CODE39(17).bar(4) = True
CODE39(17).spe(4) = False
CODE39(17).bar(5) = False
CODE39(17).spe(5) = False
CODE39(18).char = "I"
CODE39(18).bar(1) = False
CODE39(18).spe(1) = False
CODE39(18).bar(2) = True
CODE39(18).spe(2) = False
CODE39(18).bar(3) = False
CODE39(18).spe(3) = True
CODE39(18).bar(4) = True
CODE39(18).spe(4) = False
CODE39(18).bar(5) = False
CODE39(18).spe(5) = False
CODE39(19).char = "J"
CODE39(19).bar(1) = False
CODE39(19).spe(1) = False
CODE39(19).bar(2) = False
CODE39(19).spe(2) = False
CODE39(19).bar(3) = True
CODE39(19).spe(3) = True
CODE39(19).bar(4) = True
CODE39(19).spe(4) = False
CODE39(19).bar(5) = False
CODE39(19).spe(5) = False
CODE39(20).char = "K"
CODE39(20).bar(1) = True
CODE39(20).spe(1) = False
CODE39(20).bar(2) = False
CODE39(20).spe(2) = False
CODE39(20).bar(3) = False
CODE39(20).spe(3) = False
CODE39(20).bar(4) = False
CODE39(20).spe(4) = True
CODE39(20).bar(5) = True
CODE39(20).spe(5) = False
CODE39(21).char = "L"
CODE39(21).bar(1) = False
CODE39(21).spe(1) = False
CODE39(21).bar(2) = True
CODE39(21).spe(2) = False
CODE39(21).bar(3) = False
CODE39(21).spe(3) = False
CODE39(21).bar(4) = False
CODE39(21).spe(4) = True
CODE39(21).bar(5) = True
CODE39(21).spe(5) = False
CODE39(22).char = "M"
CODE39(22).bar(1) = True
CODE39(22).spe(1) = False
CODE39(22).bar(2) = True
CODE39(22).spe(2) = False
CODE39(22).bar(3) = False
CODE39(22).spe(3) = False
CODE39(22).bar(4) = False
CODE39(22).spe(4) = True
CODE39(22).bar(5) = False
CODE39(22).spe(5) = False
CODE39(23).char = "N"
CODE39(23).bar(1) = False
CODE39(23).spe(1) = False
CODE39(23).bar(2) = False
CODE39(23).spe(2) = False
CODE39(23).bar(3) = True
CODE39(23).spe(3) = False
CODE39(23).bar(4) = False
CODE39(23).spe(4) = True
CODE39(23).bar(5) = True
CODE39(23).spe(5) = False
CODE39(24).char = "O"
CODE39(24).bar(1) = True
CODE39(24).spe(1) = False
CODE39(24).bar(2) = False
CODE39(24).spe(2) = False
CODE39(24).bar(3) = True
CODE39(24).spe(3) = False
CODE39(24).bar(4) = False
CODE39(24).spe(4) = True
CODE39(24).bar(5) = False
CODE39(24).spe(5) = False
CODE39(25).char = "P"
CODE39(25).bar(1) = False
CODE39(25).spe(1) = False
CODE39(25).bar(2) = True
CODE39(25).spe(2) = False
CODE39(25).bar(3) = True
CODE39(25).spe(3) = False
CODE39(25).bar(4) = False
CODE39(25).spe(4) = True
CODE39(25).bar(5) = False
CODE39(25).spe(5) = False
CODE39(26).char = "Q"
CODE39(26).bar(1) = False
CODE39(26).spe(1) = False
CODE39(26).bar(2) = False
CODE39(26).spe(2) = False
CODE39(26).bar(3) = False
CODE39(26).spe(3) = False
CODE39(26).bar(4) = True
CODE39(26).spe(4) = True
CODE39(26).bar(5) = True
CODE39(26).spe(5) = False
CODE39(27).char = "R"
CODE39(27).bar(1) = True
CODE39(27).spe(1) = False
CODE39(27).bar(2) = False
CODE39(27).spe(2) = False
CODE39(27).bar(3) = False
CODE39(27).spe(3) = False
CODE39(27).bar(4) = True
CODE39(27).spe(4) = True
CODE39(27).bar(5) = False
CODE39(27).spe(5) = False
CODE39(28).char = "S"
CODE39(28).bar(1) = False
CODE39(28).spe(1) = False
CODE39(28).bar(2) = True
CODE39(28).spe(2) = False
CODE39(28).bar(3) = False
CODE39(28).spe(3) = False
CODE39(28).bar(4) = True
CODE39(28).spe(4) = True
CODE39(28).bar(5) = False
CODE39(28).spe(5) = False
CODE39(29).char = "T"
CODE39(29).bar(1) = False
CODE39(29).spe(1) = False
CODE39(29).bar(2) = False
CODE39(29).spe(2) = False
CODE39(29).bar(3) = True
CODE39(29).spe(3) = False
CODE39(29).bar(4) = True
CODE39(29).spe(4) = True
CODE39(29).bar(5) = False
CODE39(29).spe(5) = False
CODE39(30).char = "U"
CODE39(30).bar(1) = True
CODE39(30).spe(1) = True
CODE39(30).bar(2) = False
CODE39(30).spe(2) = False
CODE39(30).bar(3) = False
CODE39(30).spe(3) = False
CODE39(30).bar(4) = False
CODE39(30).spe(4) = False
CODE39(30).bar(5) = True
CODE39(30).spe(5) = False
CODE39(31).char = "V"
CODE39(31).bar(1) = False
CODE39(31).spe(1) = True
CODE39(31).bar(2) = True
CODE39(31).spe(2) = False
CODE39(31).bar(3) = False
CODE39(31).spe(3) = False
CODE39(31).bar(4) = False
CODE39(31).spe(4) = False
CODE39(31).bar(5) = True
CODE39(31).spe(5) = False
CODE39(32).char = "W"
CODE39(32).bar(1) = True
CODE39(32).spe(1) = True
CODE39(32).bar(2) = True
CODE39(32).spe(2) = False
CODE39(32).bar(3) = False
CODE39(32).spe(3) = False
CODE39(32).bar(4) = False
CODE39(32).spe(4) = False
CODE39(32).bar(5) = False
CODE39(32).spe(5) = False
CODE39(33).char = "X"
CODE39(33).bar(1) = False
CODE39(33).spe(1) = True
CODE39(33).bar(2) = False
CODE39(33).spe(2) = False
CODE39(33).bar(3) = True
CODE39(33).spe(3) = False
CODE39(33).bar(4) = False
CODE39(33).spe(4) = False
CODE39(33).bar(5) = True
CODE39(33).spe(5) = False
CODE39(34).char = "Y"
CODE39(34).bar(1) = True
CODE39(34).spe(1) = True
CODE39(34).bar(2) = False
CODE39(34).spe(2) = False
CODE39(34).bar(3) = True
CODE39(34).spe(3) = False
CODE39(34).bar(4) = False
CODE39(34).spe(4) = False
CODE39(34).bar(5) = False
CODE39(34).spe(5) = False
CODE39(35).char = "Z"
CODE39(35).bar(1) = False
CODE39(35).spe(1) = True
CODE39(35).bar(2) = True
CODE39(35).spe(2) = False
CODE39(35).bar(3) = True
CODE39(35).spe(3) = False
CODE39(35).bar(4) = False
CODE39(35).spe(4) = False
CODE39(35).bar(5) = False
CODE39(35).spe(5) = False
CODE39(36).char = "-"
CODE39(36).bar(1) = False
CODE39(36).spe(1) = True
CODE39(36).bar(2) = False
CODE39(36).spe(2) = False
CODE39(36).bar(3) = False
CODE39(36).spe(3) = False
CODE39(36).bar(4) = True
CODE39(36).spe(4) = False
CODE39(36).bar(5) = True
CODE39(36).spe(5) = False
CODE39(37).char = "."
CODE39(37).bar(1) = True
CODE39(37).spe(1) = True
CODE39(37).bar(2) = False
CODE39(37).spe(2) = False
CODE39(37).bar(3) = False
CODE39(37).spe(3) = False
CODE39(37).bar(4) = True
CODE39(37).spe(4) = False
CODE39(37).bar(5) = False
CODE39(37).spe(5) = False
CODE39(38).char = " "
CODE39(38).bar(1) = False
CODE39(38).spe(1) = True
CODE39(38).bar(2) = True
CODE39(38).spe(2) = False
CODE39(38).bar(3) = False
CODE39(38).spe(3) = False
CODE39(38).bar(4) = True
CODE39(38).spe(4) = False
CODE39(38).bar(5) = False
CODE39(38).spe(5) = False
CODE39(39).char = "$"
CODE39(39).bar(1) = False
CODE39(39).spe(1) = True
CODE39(39).bar(2) = False
CODE39(39).spe(2) = True
CODE39(39).bar(3) = False
CODE39(39).spe(3) = True
CODE39(39).bar(4) = False
CODE39(39).spe(4) = False
CODE39(39).bar(5) = False
CODE39(39).spe(5) = False
CODE39(40).char = "/"
CODE39(40).bar(1) = False
CODE39(40).spe(1) = True
CODE39(40).bar(2) = False
CODE39(40).spe(2) = True
CODE39(40).bar(3) = False
CODE39(40).spe(3) = False
CODE39(40).bar(4) = False
CODE39(40).spe(4) = True
CODE39(40).bar(5) = False
CODE39(40).spe(5) = False
CODE39(41).char = "+"
CODE39(41).bar(1) = False
CODE39(41).spe(1) = True
CODE39(41).bar(2) = False
CODE39(41).spe(2) = False
CODE39(41).bar(3) = False
CODE39(41).spe(3) = True
CODE39(41).bar(4) = False
CODE39(41).spe(4) = True
CODE39(41).bar(5) = False
CODE39(41).spe(5) = False
CODE39(42).char = "%"
CODE39(42).bar(1) = False
CODE39(42).spe(1) = False
CODE39(42).bar(2) = False
CODE39(42).spe(2) = True
CODE39(42).bar(3) = False
CODE39(42).spe(3) = True
CODE39(42).bar(4) = False
CODE39(42).spe(4) = True
CODE39(42).bar(5) = False
CODE39(42).spe(5) = False
CODE39(43).char = "*"
CODE39(43).bar(1) = False
CODE39(43).spe(1) = True
CODE39(43).bar(2) = False
CODE39(43).spe(2) = False
CODE39(43).bar(3) = True
CODE39(43).spe(3) = False
CODE39(43).bar(4) = True
CODE39(43).spe(4) = False
CODE39(43).bar(5) = False
CODE39(43).spe(5) = False
End Sub
Sub PaintCodeBar39(PictObj As Object, x, y, h, wf, text As String, tf)
InitArray
PictObj.ScaleMode = 3
PictObj.CurrentX = x
PictObj.CurrentY = y
xpos = x
ypos = y
text = Trim(text)
For j = 1 To Len(text)
d = Mid(text, j, 1)
N39 = AscTo39(d)
If tf Then
PictObj.CurrentX = xpos
+ (16 * wf - PictObj.TextWidth(d)) / 2
PictObj.CurrentY = y +
h
PictObj.Print d
End If
'Plot 5 bars and 4 spaces and gap
For bs = 1 To 5
'Bar
If CODE39(N39).bar(bs)
Then
w = 3 'Wide
Else
w = 1 'Narrow
End If
'Draw line for bar
For i = 1 To w * wf
PictObj.Line (xpos, ypos)-(xpos, ypos + h)
xpos = xpos + 1
Next
'Space
If CODE39(N39).spe(bs)
Then
xpos = xpos + 3 * wf 'Wide
Else
xpos = xpos + 1 * wf 'Narrow
End If
Next
Next
End Sub
Function AscTo39(c)
AscTo39 = -1
If c >= "0" And c <= "9" Then
AscTo39 = Val(c)
Else
c = UCase(c)
If c >= "A" And c <=
"Z" Then
AscTo39 = Asc(c) - 55
Else
Select Case c
Case "-"
AscTo39 = 36
Case "."
AscTo39 = 37
Case " "
AscTo39 = 38
Case "*"
AscTo39 = 43
Case "$"
AscTo39 = 39
Case "/"
AscTo39 = 40
Case "+"
AscTo39 = 41
Case "%"
AscTo39 = 42
End Select
End If
End If
End Function |
| Usage |
'To try it put this on a form command
Private Sub Command1_Click()
PaintCodeBar39 Printer, 0,0, 50, 2, "*ABCDE*", True
Printer.EndDoc
End Sub |
|
 |
|
 |