Mot exact Résultats par page

Index des mots-clés

AGENDA PERSONNEL
ALBUM PHOTO (Script)
ANTI SPAM
APICULTURE
BOISSONS (Recettes)
BREDELE
C++
CADRE
CHARLOTTE AUX FRUITS
CODAGE ADRESSES MAIL
CODE 2 DE 5 ENTRELACE
CODE 3 DE 9
CODE 128
CODE PDF417
CODES BARRE
CODE POSTAL
CODES VIDEOTEXT
CONFITURES
CONGOLAIS
CONSERVES (Recettes)
CORNICHONS AU VINAIGRE
COUARAIL
CUISINE (Bases)
CYBERMUT
DADANT
DATAMATRIX
DDE
DESSERTS (Recettes)
DOUBLE NAT
DYNDNSUPDATE
EAN 13
EAN 128
ELECTRONIQUE
ENTREES (Recettes)
ENVOI DE SMS
ESPACE MEMBRE
EURO
EXEMPLES VB6
FAVORIS
FONCTIONS
FONCTIONS EN C++
GUACAMOLE
IMPRIMANTES RESEAUX
INSTANCE UNIQUE
KIT VB4
LANGSTROTH
LEGUMES (Recettes)
MADELEINES
MAISONS
MAQUEREAUX AU VIN BLANC
MAQUEREAUX (Rillettes)
NMEA
NOUGATINE
PAIN
PDF417
PHP
PIC
PLANS DE MAISON
PATISSERIE (Bases)
PLANTEUR
PLATS COMPLETS (Recettes)
POISSONS (Recettes)
PROCEDURES
PROGRAMMATION
RECETTES DE CUISINE
RESSOURCES RESEAUX
R.I.B.
ROUTINES
RUCHE
SALADES (Recettes)
SAUMON EN CROUTE
SCRIPTS
SITES
SLICE
SMS
SOUPE DE COURGE
TABLE PERIODIQUE
TATIN (Tarte)
USB
VIANDES (Recettes)
VIDEOTEXT
VISUAL BASIC
VOIRNOT
WNTIPCFG

Mot exact Résultats par page
I
N
D
E
X

Le code 2 de 5 entrelacé
 


English v
ersion

Ce code ne permet de coder que les chiffres. Ils sont codés 2 par 2 aussi le nombre de chiffres doit-il être pair..

Etudions le mode d'encodage.

Exemple de somme de contrôle pour : 65732
(2 + 7 + 6) x 3 + 3 + 5 = 53 ---> M = 60
60 - 53 = 7
Le nouveau code avec la somme de contrôle est : 657327 (Noter que le nombre de chiffre incluant la somme de contrôle est pair.)

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 2 de 5 entrelacé 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 2 de 5 entrelacé et de la proposer en téléchargement. Je l'ai testé sur une imprimante laser en corps 15, ce qui donne un très petit code barre d'environ 1,2 mm de largeur par chiffre, résultat : lecture à 100% ! Sur une bonne imprimante à jet d'encre ce même corps 15 donne le même résultat.

La police " code25I.ttf "

Du fait que le code 2 de 5 entrelacé encode des paires de chiffres ma police contient les 100 paires de 00 à 99. 2 caractères additionnels sont réservés aux symboles de début et de fin.

Paire de chiffres

Code ASCII

Caractère

Motif

 00

 0033

 !

 NNNNWWWWNN

 01

 0034

 "

 NWNNWNWNNW

.../...

 93

 0126

 ~

 NWWWNNWNNN

 94

 0195

 Ã

 NNWNNWWNNW

.../...

 99

 0200

 È

 NNWNNNWWNW

 Début

 0201

 É

 NNNN

Fin

 0202

 Ê

 WNN

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

Structure d'un code 2 de 5 entrelacé.

Un code 2 de 5 entrelacé sera donc constitué de la manière suivante :

Un petit programme de test.

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 :

La fonction code25I$ 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 Code25I$(chaine$, Optional key As Boolean)
  'V 2.0.0
  'Paramètres : * une chaine
  '             * un drapeau vrai si une clé doit être ajoutée
  'Parameters : * a string
  '             * a flag true if a key must be added
  'Retour : * une chaine qui, affichée avec la police CODE25I.TTF, donne le code barre
  '         * une chaine vide si paramètre fourni incorrect
  'Return : * a string which give the bar code when it is dispayed with CODE25I.TTF font
  '         * an empty string if the supplied parameter is no good
  Dim i%, checksum&, dummy%
  Code25I$ = ""
  If Len(chaine$) > 0 Then
    'Vérifier si caractères valides
    'Check for valid characters
    For i% = 1 To Len(chaine$)
      If Asc(Mid$(chaine$, i%, 1)) < 48 Or Asc(Mid$(chaine$, i%, 1)) > 57 Then Exit Function
    Next
    'Ajouter si nécessaire la clé
    'Add if necessary the checksum
    If key Then
      For i% = Len(chaine$) To 1 Step -2
        checksum& = checksum& + Val(Mid$(chaine$, i%, 1))
      Next
      checksum& = checksum& * 3
      For i% = Len(chaine$) - 1 To 1 Step -2
        checksum& = checksum& + Val(Mid$(chaine$, i%, 1))
      Next
      chaine$ = chaine$ & (10 - checksum& Mod 10) Mod 10
    End If
    'Vérifier si la longueur est paire
    'Check if the length is odd
    If Len(chaine$) \ 2 <> Len(chaine$) / 2 Then Exit Function
    'Calculer la chaine de code
    'Calculation of the code string
    For i% = 1 To Len(chaine$) Step 2
      dummy% = Val(Mid$(chaine$, i%, 2))
      dummy% = IIf(dummy% < 94, dummy% + 33, dummy% + 101)
      Code25I$ = Code25I$ & Chr$(dummy%)
    Next
    'Ajoute START et STOP / Add START and STOP
    Code25I$ = Chr$(201) & Code25I$ & Chr$(202)
  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 une version en Delphi :

Language

Auteur

 

Delphi

Francisco FERNANDEZ 

Visual Foxpro

Cédric THIVIND

C#

Pauline


Vous aimez cette page ?

Elle vous est utile ?

Cliquez ici !