Code 128
Domaine d'utilisation
Les codes à barres TransBar Code 128 répondent à la norme internationale ISO/CEI 15417, dernière évolution d'une norme anciennement référencée NF EN 799 ou Z 63-300-4.
Le Code 128 est la Rolls du code à barres : très fiable, complet, sans concurence dans ses domaines d'utilisation. Seule une certaine complexité de mise en oeuvre empêche de le conseiller de manière systématique, sans comparaison préalable avec le Code 39. qui représente encore souvent la meilleure solution en dehors des cas suivants :
- applications de gestion interne exigeant le codage de minuscules ou de signes Ascii, le codage compact de nombres ou une grande sécurité
- ordonnances médicales françaises, sécurisées ou non, selon arrêté du 10 août 2010 et instruction ministérielle DGOS/MSIOS n° 2010-396 du 29 novembre 2010 - NOR : ETSH1029698J - RPPS, FINESS et AM (police C128T24C en corps 24)
- vignettes de « Sécurité Sociale » des médicaments français, selon arrêté du 21 février 1996
- imprimés administratifs, bons de transport exigeant cette symbologie
- impression à très faible résolution (inférieure à 300 points par pouce), pour laquelle le Code 128 permet d'obtenir les largeurs les plus faibles
Le Code 128 sert de base à plusieurs standards qui l'ont adapté à des usages bien précis en le complétant de règles quant à la composition des informations à mémoriser ou quant aux dimensions à respecter :
- référencement de sur-emballages de la grande distribution (cartons, palettes, containers) : GS1 128 (ex Ean 128)
- référencement des médicaments et de certains produits parapharmaceutiques distribués en France : CIP 128
- référencement de pièces détachées pour automobiles : Galia 128
Informations à coder
Codage d'informations de longueur quelconque composées de majuscules, de minuscules, de chiffres et des signes ASCII :
Espace ! " # $ % & ' ( ) * + , - . / : < = > ? @ [ \ ] ^ _ ` { | } ~
La norme prévoit également la possibilité de coder des « caractères » qui n'ont pas de représentation graphique :
- les caractères de contrôle ASCII, d'ordre 0 à 31 et d'ordre 127. Les lecteurs en liaison série transmettent ces caractères, ce qui n'est pas le cas des lecteurs en émulation clavier ; en particulier, le résultat de la lecture des caractères d'ordre ASCII 9 (Tabulation), 10 (Saut de ligne), 13 (Retour chariot) par un lecteur en émulation clavier est imprédictible
- quatre caractères propres au Code 128, appellés couramment FNC1, FNC2, FNC3 et FNC4 ou encore « caractère de fonction n° 1, 2, etc », qui n'ont pas d'équivalent en terme d'ordre informatique et présentent, dans certaines circonstances, des usages réservés, dont :
- FNC1 est, en pratique, réservé au standard GS1/Ean 128
- FNC2 permet de concaténer la lecture de plusieurs codes à barres ; il indique au lecteur de stocker le message pour le transmettre en en-tête de la prochaine lecture qui ne contient pas FNC2
- FNC3 indique au lecteur que le message qui suit est à son usage propre, souvent pour paramétrer ce lecteur
- FNC4 intervient dans la possibilité de mémoriser des caractères accentués
À partir des versions datées 2005, la norme prévoit la possibilité de coder également :
- les caractères d'ordre 128 à 159, aucune représentation graphique n'étant affecté à ces caractères
- les caractères d'ordre 160 à 255, selon codage ANSI, codage identique aux codages Unicode et Windows dans les ordres considérés
mais la plupart des lecteurs disponibles dans le commerce, incapables de reconnaître ces caractères accentués qui n'existent pas dans la langue « universelle » qu'est l'anglais, transmettent une information largement erronée, aussi TransBar a t'il fait le choix de ne pas les accepter.
Transcriptions et polices, jeux A, B et C
La symbologie Code 128 doit une bonne partie de ses performances à sa complexité. TransBar propose quatre méthodes de transcription à coupler avec quatre familles de polices code à barres. Une explication détaillée semble d'autant plus nécessaire que de nombreuses confusions apparaissent, du fait de cette complexité, dans des cahiers des charges ou des prescriptions de symboles Code 128.
Pour coder 128 caractères ASCII et 4 caractères de fonction, soit 132 « valeurs », la symbologie Code 128 ne propose que 100 sous-ensembles de barres. Pour résoudre cette difficulté, un même sous-ensemble de barres présente trois significations différentes selon ce qui le précède. On définit ainsi trois « contextes » qui prennent les noms de « jeu A », « jeu B » et « jeu C ».
Par exemple, le sous-ensemble de barres représente :
- le caractère de contrôle « Tabulation » d'ordre ASCII 9 dans le contexte « jeu A »
- la lettre minuscule « i » dans le contexte « jeu B »
- le couple de chiffres « 73 » dans le contexte « jeu C »
Le choix du jeu dépend donc de ce que l'on veut coder :
jeu A | jeu B | jeu C | |
chiffres unitaires, tels que 1, 2 ou 3 | X | X | |
couples de chiffres, tels que 12 ou 34 | X | ||
majuscules | X | X | |
minuscules | X | ||
signes d'ordre ASCII < 96 | X | X | |
signes d'ordre ASCII > 95 | X | ||
caractères de contrôle d'ordre ASCII < 32 | X | ||
caractère spécifique FNC1 | X | X | X |
caractères spécifiques FNC2, FNC3 et FNC4 | X | X |
On peut mixer, dans un même code à barres, les différents jeux de manière à :
- coder des caractères qui ne sont disponibles que dans un jeu, par exemple minuscules et caractères de contrôle
- diminuer la largeur des codes à barres qui mémorisent des chiffres contigus en utilisant le jeu C , dont chaque sous-ensemble de barres représente deux chiffres alors qu'il n'en représente qu'un dans les jeux A et B
En pratique, et en l'absence de prescription d'usage d'un jeu particulier, on choisira la transcription et la police par le tableau suivant :
caractères de contrôle |
lettres légendées |
chiffres uniquement |
sans légende | |
jeu A uniquement |
jeu B uniquement |
jeu C essentiellement |
jeux A, B et C mixés pour optimiser la largeur du code à barres |
|
police légendée « C128TxxA » | X | |||
police légendée « C128TxxB » | X | |||
police légendée « C128TxxC » | X | |||
police non légendée « C128TxxN » | X | X | X | X |
Le jeu C ne permet pas, à lui seul, de coder un nombre impair de chiffres dans ce cas, la transcription « jeu C essentiellement » traite le dernier chiffre en jeu B.
Souvent, une même information à coder peut être représentée par plusieurs code à barres Code 128 visuellement très différents. Par exemple, le nombre 12345 donnera six codes à barres différents selon :
- qu'il sera exprimé en jeu A
- qu'il sera exprimé en jeu B
- qu'il sera exprimé en jeu C puis A par le découpage 12 34 5
- qu'il sera exprimé en jeu C puis B par le découpage 12 34 5
- qu'il sera exprimé en jeu A puis C par le découpage 1 23 45
- qu'il sera exprimé en jeu B puis C par le découpage 1 23 45
cette liste n'étant exhaustive (on peut aussi découper en 12 3 45, mais cela n'aurait aucun intérêt). Les plus fiables seront alors ceux qui présenteront le plus petit nombre de barres, vous les obtiendrez :
- si le message ne contient que des chiffres, par la transcription « jeu C essentiellement »
- si le message ne contient pas que des chiffres, par la transcription « jeux A, B et C mixés » avec la police non légendée
Tous les lecteurs reconnaissent automatiquement les jeux, même mixés, et transmettent la bonne information sans qu'aucune précaution ne soit nécessaire.
TransBar garantit qu'une transcription donnée (A, B, C ou optimisée) donnera exactement les mêmes barres quelque soit la police utilisée (A, B, C ou N), les défauts éventuels apparaissant dans les légendes.
Ces transcriptions, complexes, ne sauraient être réalisées en saisie directe et obligent à utiliser TransBar. Elles incluent l'ajout systématique d'un caractère de contrôle qui reste caché ce caractère est toujours contrôlé par les lecteurs mais n'est jamais transmis.
Dimensions
La symbologie Code 128 spécifie une largeur de barre minimale, souvent appelée valeur « X », de 7,5 millième de pouce, soit 0,19 mm. Les barres larges présentent différentes largeurs, toutes multiples entiers de la largeur des barres fines, donc la notion de ratio n'a donc pas de sens.
Résolution | Largeur minimale des barres fines (valeur X) |
Largeur minimale d'un caractère |
300 ppp | 10 mills - 0,25 mm | 2,79 mm |
600 ppp | 8,3 mills - 0,21 mm | 2,44 mm |
1200 ppp et supérieur | 7,5 mills - 0,19 mm | 2,10 mm |
Les valeurs de largeur de caractère du tableau ci-dessus sont données à titre indicatif. Elles ne tiennent pas compte des réserves d'initialisation, des caractères de start, de contrôle et de stop, ni des caractères de contexte. Pour obtenir une largeur circonstancée, consultez le module de calcul de largeur inclus dans TransBar.
La symbologie Code 128 ne spécifiant pas de hauteur de barre, les sept polices installées par TransBar permettent d'obtenir sept hauteurs de barres répondant aux principaux besoins. Pour un meilleur confort de lecture, il est conseillé de respecter un ratio largeur/hauteur inférieur à 6 : la hauteur de barres devra donc être proportionnée au nombre de caractères mémorisés.
Saisie des caractères non affichables
Par principe et sauf exception, les caractères de contrôle non affichables ne peuvent être saisis au clavier. Pour permettre leur introduction, TransBar propose une syntaxe adaptée à l'obtention de symboles unitaires. Les fichiers de données à transcrire peuvent également présenter ces caractères non affichables sous forme de caractères uniques.
Tabulation et retour-chariot
Dans les deux codages « jeu A seulement » et « jeux A, B et C optimisés » où ils sont disponibles, ces caractères peuvent être saisis directement dans l'onglet « Créer un code-barres » de TransBar. Ils peuvent également être obtenus par la méthode suivante.
Caractères de contrôle non-affichables d'ordre Ascii inférieur à 32
Les représenter par la syntaxe §xx, où xx représente le numéro d'ordre Ascii sous forme de deux chiffres compris entre ØØ et 31, ou par un octet de leur valeur Ascii. Par exemple, le caractère « Tabulation » sera représenté par « §09 » ou par le caractère d'ordre 9.
Caractère de contrôle non-affichable d'ordre Ascii 127
Le représenter par la syntaxe « §§7 » ou par le caractère d'ordre 127.
Caractères de fonction Code 128
Les représenter selon une des quatre syntaxes suivantes :
Syntaxe 1 | Syntaxe 2 | Caractère d'ordre Windows | Caractère d'ordre MacOS | |
FNC1 | §§1 | Ü | 220 | 134 |
FNC2 | §§2 | Å | 197 | 129 |
FNC3 | §§3 | Ä | 196 | 128 |
FNC4 | §§4 | Ñ | 209 | 132 |
Documentation commerciale
Consultez la documentation commerciale TransBar Codes 128.