The RM4SCC barcode option is specified in IDAutomation Barcode Fonts, Components and Applications to create a readable RM4SCC barcode, which includes both numbers and uppercase letters.
Using the RM4SCC barcode option with a font encoder returns text formatted to the RM4SCC Barcode Fonts. The VB function below may be used to generate the RM4SCC encoding for the barcode font.
Fig. 1. RM4SCC barcode function from the IDAutomation VB Barcode Font Encoder File.
Public Function RM4SCC(DataToEncode As String) As String DataToEncode = UCase(DataToEncode) OnlyCorrectData = "" StringLength = Len(DataToEncode) For I = 1 To StringLength 'Get each character one at a time CurrentCharNum = AscW(Mid(DataToEncode, I, 1)) 'Get the value of CurrentChar according to MOD43 '0-9 If CurrentCharNum < 58 And CurrentCharNum > 47 Then OnlyCorrectData = OnlyCorrectData & Mid(DataToEncode, I, 1) 'A-Z If CurrentCharNum < 91 And CurrentCharNum > 64 Then OnlyCorrectData = OnlyCorrectData & Mid(DataToEncode, I, 1) Next I DataToEncode = OnlyCorrectData Dim r As Integer Dim C As Integer Dim Rtotal As Long Dim Ctotal As Long Rtotal = 0 Ctotal = 0 WeightedTotal = 0 StringLength = Len(DataToEncode) For I = 1 To StringLength 'Get each character one at a time CurrentChar = Mid(DataToEncode, I, 1) 'Get the values of CurrentChar Select Case CurrentChar Case "0" r = 1 C = 1 Case "1" r = 1 C = 2 Case "2" r = 1 C = 3 Case "3" r = 1 C = 4 Case "4" r = 1 C = 5 Case "5" r = 1 C = 0 Case "6" r = 2 C = 1 Case "7" r = 2 C = 2 Case "8" r = 2 C = 3 Case "9" r = 2 C = 4 Case "A" r = 2 C = 5 Case "B" r = 2 C = 0 Case "C" r = 3 C = 1 Case "D" r = 3 C = 2 Case "E" r = 3 C = 3 Case "F" r = 3 C = 4 Case "G" r = 3 C = 5 Case "H" r = 3 C = 0 Case "I" r = 4 C = 1 Case "J" r = 4 C = 2 Case "K" r = 4 C = 3 Case "L" r = 4 C = 4 Case "M" r = 4 C = 5 Case "N" r = 4 C = 0 Case "O" r = 5 C = 1 Case "P" r = 5 C = 2 Case "Q" r = 5 C = 3 Case "R" r = 5 C = 4 Case "S" r = 5 C = 5 Case "T" r = 5 C = 0 Case "U" r = 0 C = 1 Case "V" r = 0 C = 2 Case "W" r = 0 C = 3 Case "X" r = 0 C = 4 Case "Y" r = 0 C = 5 Case "Z" r = 0 C = 0 End Select 'add the values together Rtotal = Rtotal + r Ctotal = Ctotal + C Next I 'divide the Totals by 6 and get the remainder, this is 'a reference to the Check Digit. 'set check digit to CurrentChar (a string) Rtotal = (Rtotal Mod 6) Ctotal = (Ctotal Mod 6) Select Case Rtotal Case 1 Select Case Ctotal Case 1 CurrentChar = "0" Case 2 CurrentChar = "1" Case 3 CurrentChar = "2" Case 4 CurrentChar = "3" Case 5 CurrentChar = "4" Case 0 CurrentChar = "5" End Select Case 2 Select Case Ctotal Case 1 CurrentChar = "6" Case 2 CurrentChar = "7" Case 3 CurrentChar = "8" Case 4 CurrentChar = "9" Case 5 CurrentChar = "A" Case 0 CurrentChar = "B" End Select Case 3 Select Case Ctotal Case 1 CurrentChar = "C" Case 2 CurrentChar = "D" Case 3 CurrentChar = "E" Case 4 CurrentChar = "F" Case 5 CurrentChar = "G" Case 0 CurrentChar = "H" End Select Case 4 Select Case Ctotal Case 1 CurrentChar = "I" Case 2 CurrentChar = "J" Case 3 CurrentChar = "K" Case 4 CurrentChar = "L" Case 5 CurrentChar = "M" Case 0 CurrentChar = "N" End Select Case 5 Select Case Ctotal Case 1 CurrentChar = "O" Case 2 CurrentChar = "P" Case 3 CurrentChar = "Q" Case 4 CurrentChar = "R" Case 5 CurrentChar = "S" Case 0 CurrentChar = "T" End Select Case 0 Select Case Ctotal Case 1 CurrentChar = "U" Case 2 CurrentChar = "V" Case 3 CurrentChar = "W" Case 4 CurrentChar = "X" Case 5 CurrentChar = "Y" Case 0 CurrentChar = "Z" End Select End Select 'Return Printable String RM4SCC = "(" & DataToEncode & CurrentChar & ")" End Function