Code 2 De 5 Entrelacé - Grandzebu

Mot exact 10 25 50 100 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 10 25 50 100 Résultats par page
INDEX

Le code 2 de 5 entrelacé

English version

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.

  • Le premier chiffre d'une paire est codé avec 5 barres noires et le second chiffre avec 5 barres blanches.
  • Les barres peuvent être fines ou épaisses. (Les épaisses sont 2,2 à 3 fois plus large que les fines)
  • Il y a toujours 2 barres épaisses parmi 5 barres.
  • 2 caractères speciaux sont utilisés comme délimiteur de début et de fin.
  • Une somme de contrôle peut être ajoutée, voici la méthode de calcul : Les chiffres sont numérotés de droite à gauche, calculons X la somme des chiffres pairs et Y la somme des chiffres impairs.Calculons alors Z = X + 3 * YSoit M le nombre divisible par 10 immédiatement supérieur à ZLa somme de contrôle est : M - Z
  • Dans la table suivante les barres fines sont symbolisées par "N" et les épaisses par "W".
    Valeur Codage
    0 NNWWN
    1 WNNNW
    2 NWNNW
    3 WWNNN
    4 NNWNW
    5 WNWNN
    6 NWWNN
    7 NNNWW
    8 WNNWN
    9 NWNWN

Exemple de somme de contrôle pour : 65732(2 + 7 + 6) x 3 + 3 + 5 = 53 ---> M = 6060 - 53 = 7Le 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 méthode graphique où chaque barre est "dessinée" comme un rectangle plein. Cette méthode permet de calculer la largeur de chaque barre au pixel près et de travailler sur des multiples de la largeur d'un pixel du périphérique utilisé. Cela donne une bonne précision surtout si le périphérique a une faible densité comme c'est le cas des écrans et des imprimantes à jet d'encre. Cette méthode demandes des routines de programmations spécifiques et ne permet pas de réaliser des codes barres avec un logiciel courant.
  • La police spécifique dans laquelle chaque caractère est remplacé par le code barre d'un caractère. Cette méthode permet d'utiliser n'importe quel programme comme un traitement de texte ou un tableur (Par exemple OpenOffice, le clone gratuit de MSoffice !) Les mises à l'échelles en fonction du corps (La taille quoi) choisi peuvent entrainer de petites distorsions du dessin des barres. Avec une imprimante laser il n'y a aucun problème.

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 fichierdans le répertoire despolices, 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 délimiteur de début symbolisé par le caractère É
  • Autant de caractères que nécessaire, chaque caractère représente 2 chiffres.
  • Un délimiteur de fin symbolisé par le caractère Ê

Un petit programme de test.

Voici un petit programme écriten Visual Basic 6 ; le fichierd'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 IfEnd 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 !

Tag » Code Barre 2 Parmi 5 Entrelacé