Info |
---|
L'objet code barre ne gère que les codes barres à une dimension. |
...
Les types des codes barres sont les suivants
1 - EAN 313
2 - EAN 8
3 - UPC A
4 - UPC E
5 - 2OF5 Entrelacé
6 - CODE 39
7 - CODE 39 Plus
8 - CODE 93
9 - CODE 93 Plus
10 - CODE 128 type A
11 - CODE 128 type B
12 - CODE 128 type C
13 - CODE EAN 128 type A
14 - CODE EAN 128 type B
15 - CODE EAN 128 type C
16 - CODABAR
17 - MSI
18 - ITF 14
19 - CODE 11
20 - CODE 128C sans test
21 - EAN 128C sans test
22 - DLL YBARCODE
...
Famille des codes barres
On peut classer les codes barres par familles
...
Version étendu du CODE 39 avec les caractères : 1,2,3,4,5,6,7,8,9,0
A jusqu'à Z
a jusqu'à z
les caractères accentués sont traduit en a..z
plus les caractères spéciaux : espace , $ , % , + , - , /
le point . la virgule ,
et les caractères !, ", # , & , ', (, ), *, ; , :
< , = ,> , ? ,@, [ , \ , ] , ^ , _ , ' , { , | ,} , ~
Par défaut ce sont les seuls codes possible mais, si votre lecteur est compatible avec la norme ISO 646 on peut coder d'autres caractères
Pour cela , il faut mettre votre lecteur de code barre en mode ISO 646 et utilisée la codification suivante :
Il faut aussi mettre le code ! avant et après le texte
Exemple si vous voulez code 1234 + la touche return , il faut envoyer à l'objet code barre le texte : !1234$M!
Le code $M indique la valeur de la touche return
ASCII | Code 39 | ||||||||||||||
A | A | a | +A | 0 | 0 | ESC (Escape) | %A | SH (Start of Heading) | $A | ||||||
B | B | b | +B | 1 | 1 | FS (File Separator) | %B | SX (Start of Text) | $B | ||||||
C | C | c | +C | 2 | 2 | GS (Group Separator) | %C | EX (End of Text) | $C | ||||||
D | D | d | +D | 3 | 3 | RS (Record Separator) | %D | ET (End of Transmission) | $D | ||||||
E | E | e | +E | 4 | 4 | US (Unit Separator) | %E | EQ (Enquiry) | $E | ||||||
F | F | f | +F | 5 | 5 | ; | %F | AK (Acknowledge) | $F | ||||||
G | G | g | +G | 6 | 6 | < | %G | BL (Bell-Audible of Attention Signal) | $G | ||||||
H | H | h | +H | 7 | 7 | = | %H | BS (Backspace) | $H | ||||||
I | I | i | +I | 8 | 8 | > | %I | HT (Horizontal Tabulation) | $I | ||||||
J | J | j | +J | 9 | 9 | ? | %J | LF (Line Feed) | $J | ||||||
K | K | k | +K | ! | /A | [ | %K | VT (Vertical Tabulation) | $K | ||||||
L | L | l | +L | " | /B | | | %L | FF (Form Feed) | $L | ||||||
M | M | m | +M | # | /C | ] | %M | CR (Carriage Return) | $M | ||||||
N | N | n | +N | $ | /D | ^ | %N | SO (Shift Out) | $N | ||||||
O | O | o | +O | % | /E | _ | %O | SI (Shift In) | $O | ||||||
P | P | p | +P | & | /F | { | %P | DL (Data Link Escape) | $P | ||||||
Q | Q | q | +Q | ' | /G | %Q | D1 (Device Control 1-XON) | $Q | |||||||
R | R | r | +R | ( | /H | } | %R | D2 (Device Control 2) | $R | ||||||
S | S | s | +S | ) | /I | ~ | %S | D3 (Device Control 3-XOFF) | $S | ||||||
T | T | t | +T | * | /J | DEL | %T | D4 (Device Control 4) | $T | ||||||
U | U | u | +U | + | /K | NU (Null) | %U | NK (Negative Acknowledge) | $U | ||||||
V | V | v | +V | , | /L | @ | %V | SY (Synchronous Idle) | $V | ||||||
W | W | w | +W | - | /M | ` | %W | EB (End of Transmission Block) | $W | ||||||
X | X | x | +X | . | /N | SP (= or ~ in our fonts) | SP | CN (Cancel) | $X | ||||||
Y | Y | y | +Y | / | /O | EM (End of Medium) | $Y | ||||||||
Z | Z | z | +Z | : | /Z | SB (Substitute) | $Z |
Famille du type code 93
C'est un code alpha-numérique avec : 1,2,3,4,5,6,7,8,9,0, plus les lettres A à Z plus l'espace et quelques caractères spéciaux.
La longueur de ce code peut être est variable, l'objet code barre élimine les blancs non significatifs à la fin de la valeur.
La clé est en général obligatoire.
Ce code barre peut être utilisé dans toutes applications qui doivent coder des valeurs alpha-numérique, il est utilisé dans l'industrie.
...
Code strictement numérique.
Les symboles sont utilisés pour encoder 00,01,02,03,...10,11,12,..,30,31,32 .... jusqu'à 99.
Le nombre de caractères plus la clé doit donc être toujours pair, exemple 123 sera codé en
01 23
Si ce n'est pas le cas, l'objet code barre ajoute un 0 devant
Code CODABAR
Code numérique avec : 1,2,3,4,5,6,7,8,9,0,
plus les caractères + , - , . $ , / (la virgule est traduite en point )
La longueur de ce code peut être variable
La clé n'est pas obligatoire mais il est recommandé de toujours ajouter une clé de contrôle.
Il y a quatre caractères de début et de fin du code barre : A,B,C,D ( a,b,c,d, est traduit en
A,B,C,D)
Par défaut , l'objet code barre prend A et B comme caractère de début et de fin.
On peut donc saisir soit la valeur directement , soit la valeur avec le code début/fin voulu.
exemple :
1234 -> A1234B
A1234B-> A1234B
a1234b-> A1234B
C1234D -> C1234D
Il est utilisé dans le domaine médical
Code MSI
Code strictement numérique avec : 1,2,3,4,5,6,7,8,9,0,
La longueur de ce code peut être variable
La clé n'est pas obligatoire mais il est recommandé de toujours ajouter une clé de contrôle.
CODE 11
Code strictement numérique avec : 1,2,3,4,5,6,7,8,9,0,
et le caractère -
La longueur de ce code peut être variable
La clé est en général obligatoire.
DLL YBARCODE
Le type YBARCODE passe par une DLL qui augmente les capacités de codes barres par description programmée HMP du code barre à afficher/imprimer.
Plus de 100 codes barre sont disponibles par ce moyen. Voir plus bas la liste : https://divalto.atlassian.net/wiki/spaces/PAI/pages/edit-v2/10544447490#Exemples-de-programmations-et-visuels
Calcul de la clé de contrôle
...
Chaque livre possède un numéro qui identifie ce livre , c'est la code ISBN.
Pour afficher ce code sous forme de code barre, il faut utiliser le code barre EAN13 mais en
transformant la valeur à passer au code barre.
La transformation est simple, il faut ajouter devant le code la valeur 978 et enlever la clé du code ISBN, c'est en général le dernier caractère (chiffre entre 0 et 9 et la lettre X qui indique la valeur 10 )
Exemples:
code ISBN complet 1-55615-677-4
devient 978-1-55615-677 => 978155615677 , l'objet code barre ajoutera alors le 13 caractère de la clé du code EAN13
code ISBN sans clé de fin 1-55615-677 ou 1-55615-677-X
devient 978-1-55615-677 => 978155615677 , l'objet code barre ajoutera alors le 13 caractères de la clé du code EAN13
code ISBN sans code de début 8026-003 => 2-8026-003 ( par défaut ajouter la valeur 2 devant )
devient 978-2-8026-003 => 97828026003 , l'objet code barre ajoutera alors le 13 caractère de la clé du code EAN13
...
Il existe une multitude de code barre, mais beaucoup utilise une symbologie identique à celle de l'objet code barre. En fait, ces codes barres indiquent simplement ce que représente chaque chiffre, mais utilisent une symbologie courante.
par Par exemple
le code MONARCH est tout simplement le code CODABAR
le code PRESSLEY est le même que le code MSI , seul le calcul de la clé peut être différent
le code LOGMAR est en fait un code 2 sur 5 Entrelacé
le code GENCOD est en fait EAN 13
le code GALIA est en fait le CODE 39
le code CIP est en fait le CODE 39
le code ISBN est en fait le EAN 13 (voir le chapitre dédiée)
le code Matrix 2 of 5 est en fait un CODE 11
le code JAN est en fait une code EAN
Code barre de type GS1-128 (anciennement EAN-128) ou GENCOD
Il utilise le codage de type 128C, et code une série de valeurs numériques. Voir le site
http://www.gs1.fr/gs1_fr/standards_gs1_
Ancre | ||||
---|---|---|---|---|
|
Ancre | ||||
---|---|---|---|---|
|
Le 128C est un codage de type 128 qui code un chiffre de 2 caractères entre 00 et 99 sur un caractère de code 128 .
Le champ est donc toujours de longueur paire, si ce n'est pas le cas alors il faut faire comme s'il y avait un '0' devant, attention il n'y a pas de BLANC non plus, Il n'y a que des chiffres de '00' à '99' .
Exemple :
123 > 01>premier code128c 23->deuxième code128c et au décodage le lecteur renverra 0123
Il faut donc envoyer au code 128c des chiffres entre '00' et '99', et décomposer le traitement pour rendre les valeurs multiples de 2 caractères.
Il faut aussi utiliser le mode 'à l'exécution' avec le mode 20 ou 21, ce mode indique que le traitement de la longueur (qui doit être paire) doit être fait élément par élément et non pas globalement à cause des caractères FNC1 qui peuvent se trouver entre deux valeurs et qui peuvent rendre la longueur totale du code barre impaire.
Exemple : on veut coder cette série de valeurs
1 ean 14 ;'01' est du type n14
1 dte 6;une date de fabrication
1 fab 6;un numéro de fabrication
1 qte 8;une qte
1 dte2 6;autre date
;on commence par récupérer et par formater les champs
Dte = FormatD("AAM0J0",IMP_ETIQ.DLUO)
Dte =Modify(' ','0',dte) ;on a 6 chiffres 000000
Fab= '0' & CLI.NoFab ;si fabrique fait 5 de long on le met dans une zone de 6
fab =Modify(' ','0',fab) ;on a 6 chiffres 000000
qte = Format("<00000000>",IMP_ETIQ.QTE) ;sur 8 par exemple avec des 0
dte2 = FormatD("AAM0J0",IMP_Etiq.DatFab)
dte2 =Modify(' ','0',dte2) ;on a 6 chiffres 000000
ean = '0' & ART.EAN ;1+13 -> 14 chiffres
ean = modify(' ','0',ean)
; dans le masque imprimante, il faut mettre l'objet code barre dans le mode « à l'exécution »
;maintenant on peut construire le code barre
IMP_ETIQ.EAN128 = "211 " & \ ; type de code barre 21, 1 on ne veut pas de calcul de clé
;nota, la zone fait 6 caractères d'entête
'10' & ean & \ ;code ean
'15' & dte & \ ;date dluco
'91' & fab & qte & FNC1 & \ ;numéro de fabrication et qte FNC1 permet d'indiquer une
;zone de lg variable
'10' & qt2 ;etc
remarquez que les code d'identifications sont '01', 02', … , et pas '1', '2' ,… , car ils doivent aussi êtres multiples de 2 caractères et que les codes '410' '411' … sont multiples de n3 a n13 car '410' + n3, donne 6 caractères
Rappel : en mode "A l'exécution" les 6 premiers caractères sont :
Type de code barre 2,0 ;de 1 a 21
Calcul de la clé 1,0 ;1=aucun calcul 2=calcul 3=calcul et affichage
Réservé pour le futur 3
Les types de code barre 20 et 21 sont les mêmes que 12 (CODE12C) et 15 (EAN128C) a part qu'il n'y a pas de contrôle que la longueur soit multiple de 2, ceci a cause des codes FNC1 qui peuvent se trouver dans le code barre et qui peuvent rendent impair la longueur du code barre.
Exemples de programmations et visuels
Plusieurs exemples de programmation de code barre sont fournis dans les Divalto/exemple, notamment ici dans le dossier codebarre.
Sous-projet | |||
---|---|---|---|
codebarre | illustre l’impression des codes barres les plus classiques | ||
code barre colissimo | illustre l’impression des codes colissimo | ||
code barre swiss | illustre le QR Code des factures suisses |
code barre ybarcode | illustre l’utilisation de la DLL ybarcode.dll | Cet exemple génère plus de 100 exemple de codes barre, dont le paramétrage est décrit dans le fichier demoybarcode.txt Traite notamment:
| Quelques extraits : |