Code 39 Barcode Font

Code 39 is one of the earliest and most widely used barcode. It is a variable length barcode, which means that you will be able to encode any number of characters in the barcode. It supports alphanumeric characters and is used in a wide variety of applications.

If you have a need for using barcodes in your organization and do not want to get into the details, Code 39 is one of the recommended barcodes.

Code 39 barcodes begin and end with the '*' character. This character is also called the start/stop character. Code 39 is typically not used with a check character and is thus one of the barcodes that you will be able to use easily without an Encoder. A modulo 43 check character is available for use if security is required.

Code 39 ASCII Barcode

Although Code 39 only supports 43 characters, it is possible to employ a substitution mechanism based on industry specifications to encode all the 128 ASCII characters. The Code 39 barcode that employs this mechanism is known as the Code 39 Extended barcode or Code 39 ASCII barcode.

ConnectCode Code 39 barcode font is able to support this Code 39 ASCII barcode. However, as the substitution mechanism is not easy to perform manually, it is recommended to use this barcode through the Software Encoder or the supplied VB macros.

Barcode Font Names and Sizes

ConnectCode Code 39 barcode supports up to seven different heights. These barcodes with seven different heights are provided in seven fonts with different names. The barcodes name are appended with characters like "S1" or "S2" etc., with each one of them representing a different height. The list below illustrates the seven different fonts that is supplied for Code 39.

  • CCode39_S1
  • CCode39_S2
  • CCode39_S3
  • CCode39_S4
  • CCode39_S5
  • CCode39_S6
  • CCode39_S7
Additionally, ConnectCode also provides a font for Code 39 that includes human text. It is shown below.

  • CCode39_HS3

Code 39 Character Mappings

All characters supported by the barcode are as shown below. All of them have a simple a direct mapping.

Data Character Barcode Font Character Code39 Value
'0''0'0
'1''1'1
'2''2'2
'3''3'3
'4''4'4
'5''5'5
'6''6'6
'7''7'7
'8''8'8
'9''9'9
'A''A'10
'B''B'11
'C''C'12
'D''D'13
'E''E'14
'F''F'15
'G''G'16
'H''H'17
'I''I'18
'J''J'19
'K''K'20
'L''L'21
'M''M'22
'N''N'23
'O''O'24
'P''P'25
'Q''Q'26
'R''R'27
'S''S'28
'T''T'29
'U''U'30
'V''V'31
'W''W'32
'X''X'33
'Y''Y'34
'Z''Z'35
'-''-'36
'.''.'37
' '(space)' '(space)38
'$''$'39
'/''/'40
'+''+'41
'%''%'42
'*''*' (Start/Stop Character)


Code 39 ASCII Character Mappings

All characters supported by the Code 39 ASCII barcode are as shown below. To represent the FULL ASCII, a sequences of two characters(according to Industry Specifications) of Code 39 are used in some of the characters.

Data Character Barcode Font Character(s)
NUL"%U"
SOH"$A"
STX"$B"
ETX"$C"
EOT"$D"
ENQ"$E"
ACK"$F"
BEL"$G"
BS"$H"
HT"$I"
LF"$J"
VT"$K"
FF"$L"
CR"$M"
SO"$N"
SI"$O"
DLE"$P"
DC1"$Q"
DC2"$R"
DC3"$S"
DC4"$T"
NAK"$U"
SYN"$V"
ETB"$W"
CAN"$X"
EM"$Y"
SUB"$Z"
ESC"%A"
FS"%B"
GS"%C"
RS"%D"
US"%E"
[space]' '
'!'"/A"
'"'"/B"
'#'"/C"
'$'"/D"
'%'"/E"
'&'"/F"
'''"/G"
'('"/H"
')'"/I"
'*'"/J"
'+'"/K"
','"/L"
'-''-'
'.''.'
'/'"/O"
'0''0'
'1''1'
'2''2'
'3''3'
'4''4'
'5''5'
'6''6'
'7''7'
'8''8'
'9''9'
':'"/Z"
';'"%F"
'<'"%G"
'='"%H"
'>'"%I"
'?'"%J"
'A''A'
'B''B'
'C''C'
'D''D'
'E''E'
'F''F'
'G''G'
'H''H'
'I''I'
'J''J'
'K''K'
'L''L'
'M''M'
'N''N'
'O''O'
'P''P'
'Q''Q'
'R''R'
'S''S'
'T''T'
'U''U'
'V''V'
'W''W'
'X''X'
'Y''Y'
'Z''Z'
'['"%K"
'\'"%L"
']'"%M"
'^'"%N"
'_'"%O"
'a'"+A"
'b'"+B"
'c'"+C"
'd'"+D"
'e'"+E"
'f'"+F"
'g'"+G"
'h'"+H"
'i'"+I"
'j'"+J"
'k'"+K"
'l'"+L"
'm'"+M"
'n'"+N"
'o'"+O"
'p'"+P"
'q'"+Q"
'r'"+R"
's'"+S"
't'"+T"
'u'"+U"
'v'"+V"
'w'"+W"
'x'"+X"
'y'"+Y"
'z'"+Z"
'{'"%P"
'|'"%Q"
'|'"%R"
'~'"%S"
DEL"%T"


Using the Code 39 barcode font

For example, to encode the data "123456", you can key in the following in your text editor and choose the Code 39 barcode font.

Input: *123456*

Output:



For example, to encode the data "45346345", you can key in the following in your text editor and choose the Code 39 barcode font.

Input: *45346345*

Output:


If you are using the Encoder, it will automatically put in the start/stop characters for you and allow you to choose the optional check character.

Calculation of Code39 Modulo 43 Check Character

For example if the data "1234" is to be encoded as a barcode. The check character is calculated as follows.

ASCII Characters1234
Code 39 Values1234
Sum :1 + 2 + 3 + 4 = 10
Modulo 43 :10 % 43 = 10 (which maps to the character 'A')


The characters "*1234A*" can then be keyed in to the text editor with the appropriate font selected to generate a Code 39 barcode with check characters.