Bar Codes
The OCLC Distributed ILL project will support the printing and scanning of Extended Code 39 bar codes. The printing and scanning of bar codes will be supported for the Transaction ID. The standard Code 39 character set only supports 43 characters (26 uppercase letters, 10 digits, and 7 special characters (- . $ / + % and space)). This Extended Code 39 format allows us to encode the full 128 character ASCII character set by defining specific 2-character Code 39 sequences to encode the remaining ASCII characters. It is not possible to encode the characters between hex 80 and hex FF. The table below shows the complete ASCII character set as it is represented in an Extended Code 39 bar code.
|
ASCII |
Hex |
Ext. Code 39 |
|
ASCII |
Hex |
Ext. Code 39 |
|
ASCII |
Hex |
Ext. Code 39 |
|
ASCII |
Hex |
Ext. Code 39 |
|
NUL |
00 |
%U |
|
SP |
20 |
space |
|
@ |
40 |
%V |
|
` |
60 |
%W |
|
SOH |
01 |
$A |
|
! |
21 |
/A |
|
A |
41 |
A |
|
a |
61 |
+A |
|
STX |
02 |
$B |
|
" |
22 |
/B |
|
B |
42 |
B |
|
b |
62 |
+B |
|
ETX |
03 |
$C |
|
# |
23 |
/C |
|
C |
43 |
C |
|
c |
63 |
+C |
|
EOT |
04 |
$D |
|
$ |
24 |
/D ‡ |
|
D |
44 |
D |
|
d |
64 |
+D |
|
ENQ |
05 |
$E |
|
% |
25 |
/E ‡ |
|
E |
45 |
E |
|
e |
65 |
+E |
|
ACK |
06 |
$F |
|
& |
26 |
/F |
|
F |
46 |
F |
|
f |
66 |
+F |
|
BEL |
07 |
$G |
|
' |
27 |
/G |
|
G |
47 |
G |
|
g |
67 |
+G |
|
BS |
08 |
$H |
|
( |
28 |
/H |
|
H |
48 |
H |
|
h |
68 |
+H |
|
HT |
09 |
$I |
|
) |
29 |
/I |
|
I |
49 |
I |
|
I |
69 |
+I |
|
LF |
0A |
$J |
|
* |
2A |
/J ‡ |
|
J |
4A |
J |
|
j |
6A |
+J |
|
VT |
0B |
$K |
|
+ |
2B |
/K ‡ |
|
K |
4B |
K |
|
k |
6B |
+K |
|
FF |
0C |
$L |
|
, |
2C |
/L |
|
L |
4C |
L |
|
l |
6C |
+L |
|
CR |
0D |
$M |
|
- |
2D |
- ‡ |
|
M |
4D |
M |
|
m |
6D |
+M |
|
SO |
0E |
$N |
|
. |
2E |
. ‡ |
|
N |
4E |
N |
|
n |
6E |
+N |
|
SI |
0F |
$O |
|
/ |
2F |
/O ‡ |
|
O |
4F |
O |
|
o |
6F |
+O |
|
DLE |
10 |
$P |
|
0 |
30 |
0 ‡ |
|
P |
50 |
P |
|
p |
70 |
+P |
|
DC1 |
11 |
$Q |
|
1 |
31 |
1 ‡ |
|
Q |
51 |
Q |
|
q |
71 |
+Q |
|
DC2 |
12 |
$R |
|
2 |
32 |
2 ‡ |
|
R |
52 |
R |
|
r |
72 |
+R |
|
DC3 |
13 |
$S |
|
3 |
33 |
3 ‡ |
|
S |
53 |
S |
|
s |
73 |
+S |
|
DC4 |
14 |
$T |
|
4 |
34 |
4 ‡ |
|
T |
54 |
T |
|
t |
74 |
+T |
|
NAK |
15 |
$U |
|
5 |
35 |
5 ‡ |
|
U |
55 |
U |
|
u |
75 |
+U |
|
SYN |
16 |
$V |
6 |
36 |
6 ‡ |
V |
56 |
V |
v |
76 |
+V |
|||
|
ETB |
17 |
$W |
7 |
37 |
7 ‡ |
W |
57 |
W |
w |
77 |
+W |
|||
|
CAN |
18 |
$X |
8 |
38 |
8 ‡ |
X |
58 |
X |
x |
78 |
+X |
|||
|
EM |
19 |
$Y |
9 |
39 |
9 ‡ |
Y |
59 |
Y |
y |
79 |
+Y |
|||
|
SUB |
1A |
$Z |
: |
3A |
/Z |
Z |
5A |
Z |
z |
7A |
+Z |
|||
|
ESC |
1B |
%A |
; |
3B |
%F |
[ |
5B |
%K |
{ |
7B |
%P |
|||
|
FS |
1C |
%B |
< |
3C |
%G |
\ |
5C |
%L |
| |
7C |
%Q |
|||
|
GS |
1D |
%C |
= |
3D |
%H |
] |
5D |
%M |
} |
7D |
%R |
|||
|
RS |
1E |
%D |
> |
3E |
%I |
^ |
5E |
%N |
~ |
7E |
%S |
|||
|
US |
1F |
%E |
? |
3F |
%J |
_ |
5F |
%O |
DEL |
7F |
%T ‡ |
‡
Table notes:
Bar Code Format:
Check character:
|
Char |
Value |
|
Char |
Value |
|
Char |
Value |
|
Char |
Value |
|
Char |
Value |
|
Char |
Value |
|
Char |
Value |
|
0 |
0 |
|
7 |
7 |
|
E |
14 |
|
L |
21 |
|
S |
28 |
|
Z |
35 |
|
% |
42 |
|
1 |
1 |
|
8 |
8 |
|
F |
15 |
|
M |
22 |
|
T |
29 |
|
- |
36 |
|
|
|
|
2 |
2 |
|
9 |
9 |
|
G |
16 |
|
N |
23 |
|
U |
30 |
|
. |
37 |
|
|
|
|
3 |
3 |
|
A |
10 |
|
H |
17 |
|
O |
24 |
|
V |
31 |
|
SP |
38 |
|
|
|
|
4 |
4 |
|
B |
11 |
|
I |
18 |
|
P |
25 |
|
W |
32 |
|
$ |
39 |
|
|
|
|
5 |
5 |
|
C |
12 |
|
J |
19 |
|
Q |
26 |
|
X |
33 |
|
/ |
40 |
|
|
|
|
6 |
6 |
|
D |
13 |
|
K |
20 |
|
R |
27 |
|
Y |
34 |
|
+ |
41 |
|
|
|
|
Data: |
C |
O |
D |
E |
3 |
9 |
|
|
Value: |
12 |
24 |
13 |
14 |
38 |
3 |
9 |
|
Sum: |
113 |
||||||
|
113 |
/ |
43 |
= |
2 |
(remainder is 27) |
||
|
27 |
= |
R |
check character |
Assumptions:
Encoding a bar code:
Decoding a bar code:
Examples (to see the examples correctly, the '3 of 9 Barcode' font must be installed):
*/C614-764-6000T* |
|
|
#614-764-6000T |
*/C123/J4563* |
|
|
#123*4563 |
*/CE+X+T+E+N+D+E+D C+O+D+E39/* |
|
|
#Extended Code39/ |
A sample barcode for a transaction-id with TQG of "OCLC:ACQ:1" and TQ of "OZZ:1" would be:
*/C.OCLC/ZACQ/Z1.OZZ/Z1.* |
|
|
#.OCLC:ACQ:1.OZZ:1. |
References: