Sécurisation de l'obtention des codes à barres
L'objectif d'un code à barres
L'objectif d'un code à barres, c'est de permettre le transfert d'une information imprimée dans un ordinateur en minimisant :
- le risque d'erreur, essentiellement
- le temps d'acquisition, accessoirement
Pour cela, un lecteur code à barres ne transférera l'information qu'il décode que lorsqu'il est sûr de la lire correctement. S'il hésite, il ne réagira pas : il n'y aura certes pas d'erreur de lecture, mais le résultat recherché ne sera pas obtenu puisqu'il n'y aura pas de lecture !
La sécurisation de l'obtention des codes à barres
Cette sécurisation doit porter sur deux points :
- l'obtention de codes à barres facilement lisibles
- l'obtention de codes à barres durables, sachant que les outrages du temps (jaunissement ou déformation du support, décollement de toner, etc) auront d'autant moins de conséquences que le code à barres aura été obtenu sans défaut à l'origine
Cinq étapes vous permettront de sécuriser les codes à barres obtenus par TransBar :
- choisir au mieux le codage ; certains codages, de conception ancienne, sont encore très utilisés malgré qu'ils soient moins sûrs que ceux de conception moderne
- concevoir le code à barres dans TransBar en minimisant les risques
- dimensionner le code à barres pour respecter un ratio hauteur/largeur confortable en évitant les micro-défauts d'impression
- mettre en page ce que TransBar vous fournit en respectant quelques règles complémentaires
- flasher, graver ou imprimer avec quelques précautions
- tester un prototype avant de le reproduire en grande quantité
Choisir au mieux le codage
Lorsque le codage n'est pas imposé par un donneur d'ordre ou par un domaine d'utilisation, le choix se limite en réalité à deux possibilités :
- Code 39
Solution la plus simple, conseillée pour les messages courts composés uniquement de majuscules, de chiffres ou des quelques signes disponibles - Code 128
Solution plus complexe, à réserver aux messages courts comportant des lettres majuscules ou minuscules, des chiffres ou des signes « ascii ». Il est théoriquement possible de coder des lettres accentuées occidentales, mais cette possibilité est rarement comprise par les dispositifs de lecture et n'est pas supportée par TransBar
Lorsque ces deux possibilités se révèlent insuffisantes, la solution est d'opter pour un code matriciel, Datamatrix ou autre, sachant que cette solution nécessite un lecteur spécifique et que sa lecture est moins aisée que celle des codages ci-dessus.
Concevoir un code à barres minimisant les risques
TransBar réalise lorsque nécessaire le contrôle de l'information à coder en fonction du codage choisi et signale toute erreur par un message circonstancié :
- contrôle du type des caractères
- contrôle du nombre des caractères
- contrôle du caractère de contrôle s'il est obligatoire et présent dans l'information à coder (s'il n'est pas présent alors qu'obligatoire, TransBar le calculera et l'ajoutera automatiquement)
- contrôle de la syntaxe du message
Cinq réglages restent de votre responsabilité dans TransBar : la longueur de l'information à coder, les réserves d'initialisation, les caractères de contrôle optionnels, la hauteur des barres et la résolution de l'imprimante.
Longueur des informations codées
Lorsque la longueur de l'information à coder n'est pas imposée par le codage ou par un cahier des charges extérieur, il est tentant de l'accroître au delà du strict nécessaire, en ajoutant à une référence des informations d'ordre secondaire. Par exemple, l'ajout du nom du client à un numéro de facture. Ce n'est pas une bonne solution. Un code à barres est d'autant plus difficile à décoder, et par voie de conséquence d'autant plus fragile, qu'il présente un grand nombre de barres : il sera toujours plus judicieux de coder un index vers la fiche d'une base de données que l'information composant cette fiche.
Ajout des réserves d'initialisation
Les réserves d'initialisation sont des zones claires situées de part et d'autre d'un code à barres. Elles permettent au lecteur de ne pas tenir compte des éléments extérieurs au code à lire, par exemple ci-dessous un cadre entourant le code à barres. Sans réserves d'initialisation, une barre est ajoutée de part et d'autre du code et le lecteur n'y comprendra rien.
avec réserves, correct | sans réserves, illisible |
La largeur minimale de ces réserves est normalisée pour chacun des codages. Dans certains codages, ces réserves sont marquées par un signe < ou > en amont ou en aval de la légende, ou par un cadre, ou par le décalage du premier chiffre de la légende.
Selon les codages, TransBar permet de retirer ces réserves d'initialisation, non qu'elles soient facultatives, mais parce qu'elles peuvent être introduites de fait par la seule mise en page, par exemple lorsque le code à barres est placé au milieu d'une zone claire, et parce que la présence des signes dans la légende n'est parfois pas souhaitée.
Ajout d'un caractère de contrôle optionnel
Certains codages permettent l'ajout d'un caractère de contrôle optionnel qui renforce la sécurité dans le transfert de l'information. Cette option est très conseillée dans les anciens codages, mais nécessite que le lecteur soit réglé pour contrôler puis retirer ce caractère de contrôle.
Dimensionner le code-barres
Après obtention d'un code-barres, TransBar vous fournit les consignes suivantes :
- le nom de la police à utiliser
- le corps à utiliser
Respecter ces consignes est indispensable mais n'est pas toujours suffisant.
Le choix de la police, outre l'absence ou la présence d'une légende, va déterminer essentiellement la hauteur des barres. Ou plutôt l'élancement du code-barres, c'est à dire le rapport entre la hauteur du code-barres et sa largeur. Ce ratio devra être adapté au type de lecture envisagé. Pour une présentation manuelle, soit du lecteur devant le code-barres, soit du code-barres devant le lecteur, cas les plus habituels, ce ratio ne doit pas être inférieur à 1/6, sous peine de limiter drastiquement l'oblicité permise dans le positionnement du lecteur.
Exemples de ratio minimal 1/6 :
au-dessus, police C39T48L, 13 caractères
en-dessous, police C39T30L, 7 caractères
Ces deux code-barres ne diffèrent que par la hauteur des barres,
une hauteur supérieure permettant un plus grand nombre de
caractères à élancement, donc à facilité de lecture, identique !
Dans les codages qui permettent de coder des informations de longueur variable, ce choix va aussi dépendre de cette longueur. Pour une présentation sur chaine automatique, le ratio minimum dépendra du type de lecteur (linéaire ou à faisceau tournant), de la vitesse de convoyage et de la précision de positionnement de l'objet supportant le code-barres.
Par ailleurs, des barres de grande hauteur vont augmenter la redondance verticale de l'information codée, qui va permettre au code-barres de supporter une tâche, une déchirure ou un masquage de grandes dimensions tout en restant lisible selon une ligne donnée.
Une fois la police choisie, le choix du corps dans lequel on l'imprimera va déterminer la hauteur du code-barres, mais jouera aussi sur sa largeur. Le corps devra être choisi en fonction de la résolution d'impression, de manière à obtenir des barres imprimées dont les largeurs correspondent précisément à un nombre entier de points d'imprimante. Par exemple, si, compte tenu du corps choisi, les barres fines sont théoriquement décrites par 5,3333 points d'imprimante, soit 16 points pour 3 barres, elles seront en pratique décrites deux fois par 5 points et une autre fois par 6 points. Ce type d'erreur est surtout sensible dans les basses résolutions, mais, quelque soit cette résolution, il se cumulera avec l'imprécision et l'irrégularité du point d'impression dûs aux jeux mécaniques pour dégrader la qualité du code-barres, donc son espérance de vie.
Le dimensionnement des code-barres en réponse aux deux contraintes exprimées ci-dessus :
- dimensionnement général
- dimensionnement précis
fait l'objet d'un chapitre dédié.
Mettre en page
Mise en page du texte
Prohibez l'utilisation des styles gras, oblique ou italique, etc.
En mise en page professionnelle :
- prohibez tout crénage ou approche entre caractères (sous Indesign, spécifiez un crénage « métrique », prohibez le crénage « optique » qui introduit des approches différentes de celles programmées dans la police)
- prohibez toute échelle horizontale (mais une échelle verticale est autorisée pour ajuster finement la hauteur des barres)
Attention : lorsque vous collez un code à barres dans une mise en page sous forme de texte, votre apport prend les attributs du texte d'origine : vous pouvez ainsi introduire des réglages inoportuns sans vous en rendre compte !
Mise en couleur
Il est préférable d'imprimer les codes à barres en noir sur fond blanc. L'impression des textes étant généralement réalisée en noir pur, plutôt que par une combinaison Cyan-Magenta-Jaune, l'utilisation d'une police code-barres répond donc parfaitement à cette prescription.
La mise en couleurs des barres ou du fond reste possible, mais elle diminuera toujours la lisibilité et la durabilité du code à barres en raison :
- du contraste amoindri, dont il est d'autant plus difficile de juger que les lecteurs utilisent une lumière rouge et non une lumière blanche
- de l'imprécision apportée par le tramage dans les limites entre couleurs, donc entre barres claires et sombres, imprécision que l'on ne peut éviter que par l'utilisation de tons directs
Respectez au minimum les règles suivantes puis réalisez des essais avec différents lecteurs de différentes technologies car certains lecteurs acceptent de lire des barres claires sur fond sombre, d'autres non :
- la mise couleur du fond sera toujours moins problématique que la mise en couleur des barres
- la couleur du fond devra être uniforme. Définie en RVB, elle devra être constituée d'un maximum de rouge, et d'aussi peu de vert et de bleu que possible. En CMJN, elle ne comprendra ni noir ni cyan ; elle sera donc blanc, jaune, magenta, orange ou rose
- la couleur des barres, si elle n'est pas noire, devra également être uniforme. Définie en RVB, elle devra être constituée d'un minimum de rouge, de vert et de bleu. En CMJN, elle sera constitué d'un maximum de noir et de cyan et d'aussi peu de magenta et de jaune que possible ; elle sera donc noir, gris foncé, bordeaux foncé, vert foncé ou bleu foncé
Un fond transparent n'est pas admissible, mais des barres transparentes sur fond blanc sont par contre envisageables, pour autant que la transparence soit réelle (par exemple une bouteille en verre clair contenant de l'eau) et non pas fictive (par exemple une bouteille en verre vert ou contenant du lait).
Flasher, graver ou imprimer
L'imprimante doit être choisie en fonction de la résolution qui a présidé à l'élaboration du code à barres. Un code à barres prévu pour une résolution bureautique (300 ou 600 points par pouce) pourra toujours être flashé ou gravé à haute résolution (égale ou supérieure à 1800 points par pouce), mais l'inverse n'est pas certain.
En impression de documents PDF, prohibez toute adaptation de dimension aux marges de l'imprimante, ainsi que toute mise à l'échelle autre que 100 %.
L'engraissement d'impression doit être maîtrisé (inférieur à 0,02 mm, soit 0,04 mm de bord à bord), ce qui est très généralement le cas en impression offset ou hélio hors papier journal. La sérigraphie ou la flexographie justifient un essai.
L'impression sur papier recyclé n'est pas à conseiller car elle diminuera le contraste entre barres sombres et barres claires, ce qui affectera la lisibilité du code à barres.
L'impression d'un code à barres sur film transparent est possible, mais sa lecture exigera que ce film soit placé sur une surface blanche, et préférentiellement en plaçant l'encre au contact de la surface blanche.
Tester un prototype
Enfin, quelles que soient les précautions prises dans les étapes précédentes, il semble déraisonnable d'imprimer un grand nombre de documents sans vérification préalable de la lisibilité des codes à barres obtenus.
Le test élémentaire d'un prototype peut être réalisé au moyen d'un lecteur peu performant, par exemple un crayon de lecture au contact, partant du principe qu'un code à barres qui sera facilement lu par ce crayon le sera également par les lecteurs performants dont disposent la plupart des utilisateurs.
Attention : un code à barres qui n'est pas relu par un lecteur n'est pas forcément de mauvaise qualité :
- le lecteur, s'il est relié à une base de données, peut ne lire que les codes à barres connus de cette base de données (cas général de la grande distribution)
- le lecteur peut être paramétré pour ne reconnaître que certains codages
- le lecteur peut être paramétré pour ne reconnaître que des messages d'une longueur donnée (cas fréquent en Code 2/5)