La solution logicielle complète pour l’impression de codes à barres !

Police Code128T36So

Algorithme de transcription

La méthode de transcription décrite ci-dessous est une méthode simplifiée, propre à la police Code128T36So. Seuls les chiffres peuvent être codés par cette méthode et cette police. La compression des données numériques n’est pas mise en œuvre, ce qui limite la taille des nombres à coder à environ 16 chiffres, sauf à utiliser des lecteurs autorisant les symboles de grande largeur.

Pourquoi une transcription est-elle nécessaire ?

Attention : si les informations que vous devez coder sont constantes, vous pouvez facilement vous passer de cet algorithme. Il suffit de transcrire ces informations une seule fois, par le transcripteur en ligne, puis d’enregistrer la transcription dans votre document, dans votre modèle de document ou dans un nouveau champ de votre base de données !

Comment transformer le nombre à coder en chaine de caractères à imprimer ?

Il suffit :

  • d’ajouter un caractère de contrôle à droite du nombre (voir comment le calculer au paragraphe suivant)
  • de mettre l’ensemble entre parenthèses

Exemples :

  • pour coder 8 il suffit d’imprimer (8S)
  • pour coder 15 il suffit d’imprimer (15v)
  • pour coder 1234567890 il suffit imprimer (12345678901H)

Comment calculer le caractère de contrôle ?

Prenant le nombre à coder de gauche à droite :

  • 1) affectez la valeur du 1er chiffre de gauche plus 16 à une variable TOTAL, soit TOTAL=16 pour le chiffre zéro, TOTAL=17 pour le chiffre 1, etc. Rappel : si un chiffre est exprimé sous forme de caractère, il faut retirer 48 à l’ordre ASCII de ce caractère pour obtenir la valeur du chiffre ; par exemple, le caractère représentant le chiffre zéro est le caractère d’ordre ASCII 48, le caractère représentant le chiffre 1 est le caractère d’ordre ASCII 49, etc
  • 2) prenez la valeur du 2 ème chiffre (zéro pour le chiffre 0, un pour le chiffre 1, etc), ajoutez 16 à cette valeur, multipliez le résultat par son rang dans le nombre (2), ajoutez ce résultat à TOTAL
  • 3) prenez la valeur du 3 ème chiffre, ajoutez 16 à cette valeur, multipliez cette valeur par son rang dans le nombre (3), ajoutez ce résultat à TOTAL
  • X) poursuivez selon la même logique jusqu’au chiffre des unités : prenez la valeur du X ème chiffre, ajoutez 16 à cette valeur, multipliez cette valeur par son rang dans le nombre (X), ajoutez ce résultat à TOTAL
  • 5) ajoutez 104 à TOTAL
  • 6) calculez le modulo 103 de TOTAL et affectez ce modulo à une variable ORDRE. Rappel : le modulo est le reste de la division entière ; si vous divisez 5 par 3, cela donne 1 et il reste 2 : le modulo 3 de 5 vaut 2. La fonction modulo est proposée par tous les langages informatiques
  • 7) ajoutez 58 à ORDRE
  • 8) si ORDRE est supérieur à 126, ajoutez 65 à ORDRE;
  • 9) si ORDRE est supérieur à 207, ajoutez 1 à ORDRE
  • 10) si ORDRE est supérieur à 214, ajoutez 9 à ORDRE

Le caractère de contrôle est le caractère ANSI d’ordre ORDRE. Le codage ANSI est une extension du codage ASCII permettant l’expression des caractères accentués ouest-européens. Il est identique ou parfaitement compatible avec les codages :

  • Windows mono-octet
  • ISO Latin 1
  • ISO 8859-1
  • Unicode-UTF-16
  • Unicode-UTF-32

Dans ces codages, on peut donc utiliser directement les fonctions de type :

  • CHR(ORDRE) en Basic
  • CAR(ORDRE) en Excel
  • chaine_a_imprimer[x] = ORDRE en langage C

Pour savoir si votre logiciel ou votre chaîne d’impression respecte ce codage, imprimez le caractère d’ordre 224 : si vous obtenez un « à » (a accent grave), la compatibilité est assurée, sinon il faut utiliser une des quatre méthodes décrites au paragraphe suivant.

Comment faire si le système d’exploitation ou le logiciel d’impression ne supporte pas le codage ANSI ?

Ce sera le cas par exemple sous MacOS, si le logiciel d’impression respecte l’ancien codage MacRoman ou le nouveau codage Unicode_UTF_8. Plusieurs solutions sont alors possibles, selon le langage de développement :

  • modifier ORDRE par une fonction de recodage disponible dans le langage
  • modifier ORDRE par recherche dans un tableau(ORDRE_ANSI) = ORDRE_A_OBTENIR
  • modifier ORDRE par une condition d’en_cas
  • modifier ORDRE par une suite de si_sinon_si

Comment faire pour tester votre développement ?

Procédez par test comparatif avec :

  • le transcripteur en ligne
  • le document Word Windows incluant un transcripteur Visual Basic. Attention, si une des polices Code128T36So (démonstration ou opérationnelle) est installée sur votre ordinateur, ce document affichera le code-barres et non la transcription !
  • le tableur Excel Windows incluant un transcripteur Visual Basic

Dans le cas où un dispositif de protection trop zélé vous empêcherait de télécharger ces deux derniers fichiers, vous les trouverez à cette adresse protégés dans une archive zippée, avec des suffixes modifiés. Rectifiez ces suffixes avant de les lancer en remplaçant dans leur nom :

  • « ._oc » par « .doc »
  • « ._ls » par « .xls »

Exemple : calcul du caractère de contrôle du nombre 74090

  • 1) TOTAL = 7 + 16 = 23
  • 2) TOTAL = TOTAL + ((4 + 16) * 2) = 23 + (20 * 2) = 23 + 40 = 63
  • 3) TOTAL = TOTAL + ((0 + 16) * 3) = 61 + (16 * 3) = 63 + 48 = 111
  • X) TOTAL = TOTAL + ((9 + 16) * 4) = 111 + (25 * 4) = 111 + 100 = 211
  • X) TOTAL = TOTAL + ((0 + 16) * 5) = 211 + (16 * 5) = 211 + 80 = 291
  • 5) TOTAL = TOTAL + 104 = 291 + 104 = 395
  • 6) ORDRE = MODULO(395/103) = 395 – (3 * 103) = 395 – 309 = 86
  • 7) ORDRE = ORDRE + 58 = 86 + 58 = 144
  • 8) ORDRE > 126 ? OUI -> ORDRE = ORDRE + 65 = 144 + 65 = 209
  • 9) ORDRE > 207 ? OUI -> ORDRE = ORDRE + 1 = 209 + 1 = 210
  • 10) ORDRE > 214 ? NON -> ORDRE = ORDRE

Le caractère ANSI d’ordre 210 est « Ô » (O majuscule accent grave). Pour obtenir ce caractère sous Windows, gardez la touche « Alt gauche » enfoncée et tapez 0210 sur le clavier numérique puis relachez la touche « Alt gauche ».

Pour obtenir un code-barres mémorisant 74090, vous devrez donc imprimer (74090Ô) avec la police « Code128T36So ».

Comment obtenir les mentions supplémentaires prévues par l’arrêté ?

Si vous le souhaitez, vous pouvez obtenir automatiquement les mentions exigées par l’arrêté au dessus des barres. Pour cela, dans la transcription, remplacez la parenthèse ouvrante par :

  • # pour obtenir la mention « N° RPPS »
  • $ pour obtenir la mention « N° FINESS »
  • % pour obtenir la mention « N° AM »

par exemple, le code-barres RPPS 2468024680 sera obtenu par l’impression de #2468024680Â).

      Documentation commerciale