[an error occurred while processing this directive]

Le code 3 de 9
 


English version

Ce code simple d'emploi permet le codage de 43 caractères : 10 chiffres, 26 lettres majuscules, les symboles $ % + - . / et l'espace. Le mode étendu permet de coder les 128 caractères ASCII; dans ce mode les caractères ajoutés par rapport au mode "simple" sont codés à l'aide de 2 caractères.

Etudions le mode d'encodage.

Caractère

Valeur

Motif

Caractère

Valeur

Motif

Caractère

Valeur

Motif

0

0

 101000111011101

F

15

101110111000101

U

30

111000101010111

1

1

 111010001010111

G

16

 101010001110111

V

31

100011101010111

2

2

 101110001010111

H

17

 111010100011101

W

32

111000111010101

3

3

 111011100010101

I

18

 101110100011101

X

33

100010111010111

4

4

 101000111010111

J

19

 101011100011101

Y

34

111000101110101

5

5

 111010001110101

K

20

 111010101000111

Z

35

100011101110101

6

6

 101110001110101

L

21

 101110101000111

-

36

100010101110111

7

7

101000101110111

M

22

 111011101010001

.

37

111000101011101

8

8

 111010001011101

N

23

 101011101000111

Espace

38

100011101011101

9

9

 101110001011101

O

24

 111010111010001

$

39

100010001000101

A

10

 111010100010111

P

25

 101110111010001

/

40

100010001010001

B

11

101110100010111

Q

26

101010111000111

+

41

100010100010001

C

12

111011101000101

R

27

111010101110001

%

42

101000100010001

D

13

101011100010111

S

28

101110101110001

 

 

 

E

14

111010111000101

T

29

101011101110001

*

 

100010111011101

Exemple de clé de contrôle pour : ZB65732
35 + 11 + 6 +5 +7 +3 +2 = 69
69 / 43 = 1, reste 26 qui correspond à la lettre Q
Nouveau code avec la clé : ZB65732Q

Le mode étendu.

Les caratéres ne faisant pas partie du mode simple sont codés à l'aide de l'un des 4 préfixe % $ / +  suivi d'un caractère de base selon la table suivante. Pour utiliser littéralement les caratéres qui servent de préfixe ou le symbole * il faudra utiliser un codage sur 2 caractéres

Caractère à produire

Séquence à utiliser

 

Caractère à produire

Séquence à utiliser

 

Caractère à produire

Séquence à utiliser

NUL

%U

 

+

/K

 

V

V

SOH

$A

 

,

/L

 

W

W

STX

$B

 

-

-

 

X

X

ETX

$C

 

.

.

 

Y

Y

EOT

$D

 

/

/O

 

Z

Z

ENQ

$E

 

0

0

 

[

%K

ACK

$F

 

1

1

 

\

%L

BEL

$G

 

2

2

 

]

%M

BS

$H

 

3

3

 

^

%N

HT

$I

 

4

4

 

_

%O

LF

$J

 

5

5

 

`

%W

VT

$K

 

6

6

 

a

+A

FF

$L

 

7

7

 

b

+B

CR

$M

 

8

8

 

c

+C

SO

$N

 

9

9

 

d

+D

SI

$O

 

:

/Z

 

e

+E

DLE

$P

 

;

%F

 

f

+F

DC1

$Q

 

<

%G

 

g

+G

DC2

$R

 

=

%H

 

h

+H

DC3

$S

 

>

%I

 

i

+I

DC4

$T

 

?

%J

 

j

+J

NAK

$U

 

@

%V

 

k

+K

SYN

$V

 

A

A

 

l

+L

ETB

$W

 

B

B

 

m

+M

CAN

$X

 

C

C

 

n

+N

EM

$Y

 

D

D

 

o

+O

SUB

$Z

 

E

E

 

p

+P

ESC

%A

 

F

F

 

q

+Q

FS

%B

 

G

G

 

r

+R

GS

%C

 

H

H

 

s

+S

RS

%D

 

I

I

 

t

+T

US

%E

 

J

J

 

u

+U

SPACE

SPACE

 

K

K

 

v

+V

!

/A

 

L

L

 

w

+W

"

/B

 

M

M

 

x

+X

#

/C

 

N

N

 

y

+Y

$

/D

 

O

O

 

z

+Z

%

/E

 

P

P

 

{

%P

&

/F

 

Q

Q

 

|

%Q

'

/G

 

R

R

 

}

%R

(

/H

 

S

S

 

~

%S

)

/I

 

T

T

 

DEL

%T

*

/J

 

U

U

 

 

 

La création des codes barres.

Maintenant que nous savons créer le motif d'un code barre, il nous reste à le dessiner à l'écran et à l'imprimer sur papier. Deux approches sont possibles :

La plupart des polices pour codes barre 3 de 9 trouvées sur le net (Polices de démonstration incomplètes) sont payantes (Parfois très chères) et de qualité douteuse; la largeur des modules n'étant pas toujours constante dans la définition de la police. J'ai donc décidé de dessiner entièrement une police 3 de 9 et de la proposer en téléchargement. Je l'ai testé sur une imprimante laser en corps 11, ce qui donne un très petit code barre d'environ 1,6 mm de largeur par caractère, résultat : lecture à 100% ! Sur une bonne imprimante à jet d'encre il faut monter au corps 15 ce qui donne des caractères de 2,1 mm de large.

La police " code39.ttf "

Cette police contient les 43 caractères de base et le délimiteur sous le symbole *. Chaque caractère se termine par une barre blanche fine de séparation.

Copiez ce fichier
dans le répertoire des
polices, le plus souvent :
C:\WINDOWS\FONTS

Structure d'un code 3 de 9

Un code barre 3 de 9 sera donc constitué de la manière suivante :

Un petit programme pour tester le mode de base

Voici un petit programme écrit
en Visual Basic 6 ; le fichier
d'installation copiera le
programme, les dépendances Visual
Basic ainsi que les
fichiers sources et la police.

Fichier d'auto-installation :

Fichier ZIP sans installation :

Ce programme de test ne gère ni le mode étendu ni la clé de contrôle.

La fonction Code39$ peut -être réutilisée dans n'importe quel autre programme écrit en Visual Basic 6 ; elle peut également être recopiée telle quelle dans une macro VBA rattachée à un document Excel ou Word.

Public Function Code39$(chaine$)
  'V 1.0.0
  'Paramètres : une chaine
  'Retour : * une chaine qui, affichée avec la police CODE39.TTF, donne le code barre
  '         * une chaine vide si paramètre fourni incorrect
  Dim i%
  Code39$ = ""
  If Len(chaine$) > 0 Then
  'Vérifier si caractères valides
    For i% = 1 To Len(chaine$)
      Select Case Asc(Mid$(chaine$, i%, 1))
      Case 32, 36, 37, 43, 45 To 57, 65 To 90
      Case Else
        i% = 0
        Exit For
      End Select
    Next
    If i% > 0 Then
      Code39$ = "*" & chaine$ & "*"
    End If
  End If
End Function

Fichier Excel de démonstration : et avec Open Office :

Depuis la première parution de cette page, j'ai reçu de nombreuses versions dans différents langages, les voici :

Language

Auteur

 

Visual Foxpro

Emile MAITREJEAN

Delphi

Jean-Camille POPULUS
Francisco FERNANDEZ 



Vous aimez cette page ?

Elle vous est utile ?

Cliquez ici !