Générateur de codes-barres en ligne, gratuit

Générez des codes-barres dans les formats populaires. Personnalisez et téléchargez en PNG ou SVG.

Généré localement · rien n'est envoyé à un serveur
Encode n'importe quel texte ou nombre. Format le plus polyvalent.

Brève histoire du code-barres

Le code-barres est une technologie vieille de 77 ans avec un moment d’invention unique. En 1948, le doyen du Drexel Institute of Technology de Philadelphie a entendu Bernard Silver, un étudiant diplômé, discuter d’un problème de lecture automatique des produits en caisse avec le président d’une chaîne alimentaire locale. Le doyen a refusé la demande, mais Silver l’a transmise à un instructeur de vingt-sept ans qu’il connaissait, Norman Joseph Woodland, ancien scout doté d’une bonne maîtrise du morse et d’une certaine inquiétude d’ingénieur. Woodland a démissionné de Drexel cet hiver-là, s’est installé dans l’appartement de son grand-père à Miami Beach, et un après-midi du début de 1949, en traçant nonchalamment ses quatre doigts dans le sable, la solution lui est venue : si l’on prenait les points et les tirets du morse et qu’on les étirait vers le bas, on obtenait une série de bandes fines et épaisses qu’un faisceau lumineux pouvait balayer pour produire des impulsions décodables. Son premier croquis dans le sable n’était pas des lignes parallèles mais des cercles concentriques, un motif « œil-de-bœuf » lisible quel que soit le sens de balayage du faisceau. Woodland et Silver ont déposé le brevet le 20 octobre 1949 et l’ont obtenu le 7 octobre 1952 sous la référence brevet américain 2 612 994, « Classifying Apparatus and Method », décrivant un lecteur construit autour d’une ampoule à incandescence de 500 watts. Le brevet n’était pas commercialement viable : les lasers et photodiodes nécessaires pour le lire à un prix grand public n’existaient pas encore. Les deux inventeurs ont vendu le brevet à Philco pour 15 000 dollars en 1962. Silver est mort l’année suivante dans un accident de voiture, à 38 ans, avant qu’un seul code-barres n’ait jamais scanné un produit.

La percée est arrivée deux décennies plus tard quand George Joseph Laurer, dans le laboratoire IBM de Research Triangle Park en Caroline du Nord, a proposé une alternative rectangulaire (des barres verticales plutôt que des cercles concentriques) qui est devenue le Universal Product Code (UPC). Le Symbol Selection Committee a adopté le design d’IBM le 3 avril 1973. Le premier scan UPC commercial a eu lieu le 26 juin 1974 au Marsh Supermarket à Troy, dans l’Ohio : un paquet de 10 chewing-gums Wrigley’s Juicy Fruit à 67 cents, glissé sur un scanner construit par NCR par la caissière Sharon Buchanan et tendu par Clyde Dawson, un cadre de la National Cash Register Company qui avait fabriqué l’équipement. L’emballage est aujourd’hui conservé au Smithsonian Museum of American History. En une décennie, le scan UPC était universel dans l’épicerie américaine, et en 1976 le consortium des distributeurs européens a adopté l’EAN-13 (European Article Number, désormais GTIN-13 dans la terminologie GS1), le même format avec un chiffre supplémentaire pour le préfixe pays et aujourd’hui le standard mondial hors Amérique du Nord. Tout l’écosystème moderne du code-barres (caisse de supermarché, étiquettes d’expédition, livres de bibliothèque, bracelets d’hôpital, badges de conférence, suivi d’actifs) descend de ces quatre lignes dans le sable de Miami Beach.

Les principaux formats de codes-barres 1D

Chiffres de contrôle, les maths qui rattrapent les erreurs de lecture

La plupart des codes-barres de détail incluent un chiffre de contrôle final calculé à partir des chiffres précédents. Le calcul rattrape les erreurs de lecture sur un seul chiffre (l’erreur de scanner la plus courante) et la plupart des transpositions de chiffres adjacents. UPC-A et EAN-13 utilisent un algorithme modulo 10 : en partant de la droite, multipliez chaque chiffre alternativement par 1 et 3 (UPC-A) ou 3 et 1 (EAN-13), faites la somme des produits, prenez le résultat modulo 10, et soustrayez de 10, le résultat est le chiffre de contrôle (0 si le modulo valait 0). Pour le code UPC-A 03600029145, le chiffre de contrôle est 7, ce qui donne le complet 036000291452 sur une canette de Coca-Cola. Code 128 utilise une somme pondérée modulo 103 plus complexe qui inclut le caractère de début. Code 39 est auto-vérifiant par conception (le motif de barres de chaque caractère est structurellement non ambigu) mais ajoute optionnellement un chiffre de contrôle modulo 43 pour les applications à haute confiance. Pharmacode n’a pas de chiffre de contrôle, il s’appuie plutôt sur sa plage limitée et son contexte de ligne de production. Cet outil calcule automatiquement les chiffres de contrôle ; vous pouvez saisir soit la charge utile brute (et l’outil ajoute le chiffre de contrôle), soit la charge utile complète avec contrôle (et l’outil la valide).

La zone calme, les barres ont besoin d’espace vide autour

Tout code-barres 1D requiert une quantité minimale d’espace vide aux bords gauche et droit, la zone calme. L’exigence standard est d’au moins 10× la largeur de la barre la plus étroite (notée « X » dans les spécifications de codes-barres) de chaque côté. Sans zones calmes, les scanners ne peuvent pas détecter de manière fiable où le code-barres commence et se termine ; les motifs de début et de fin de la symbologie sont conçus pour être indubitables uniquement lorsqu’ils contrastent avec un espace réellement vide. La défaillance de production la plus courante consiste à serrer un code-barres contre un bord de couleur ou un autre élément d’étiquette pour économiser de la place, brisant la zone calme. Les spécifications GS1 imposent la largeur de zone calme par symbologie et dimension X ; échouer à la vérification de zone calme à la validation signifie que le code-barres ne se scannera pas de manière fiable en magasin. Cet outil émet automatiquement les zones calmes appropriées, les sorties PNG et SVG incluent les marges requises.

JsBarcode, la bibliothèque sous-jacente

Cet outil utilise JsBarcode (Johan Lindell, sous licence MIT, ~5k étoiles GitHub), la bibliothèque JavaScript open source de codes-barres la plus utilisée. JsBarcode prend en charge CODE128, EAN (8/13), UPC, CODE39, ITF-14, MSI, Pharmacode et Codabar ; rend en SVG, Canvas ou img HTML ; et est livré sous forme d’un seul bundle minifié de 60 Ko. Il s’exécute entièrement dans le navigateur (pas de serveur, pas de téléversement) ce qui est exactement la propriété de confidentialité dont dépend cet outil. La version spécifique chargée ici est JsBarcode 3.11.6 (le bundle toutes-symbologies), épinglée via un hachage Subresource Integrity (SRI) afin qu’un attaquant compromettant le CDN ne puisse pas substituer une autre version. La bibliothèque est largement utilisée dans des plugins WordPress, des utilitaires d’impression d’étiquettes, des systèmes de caisse de restaurants et des applications d’inventaire pour petites entreprises ; c’est la raison pour laquelle un « générateur de codes-barres gratuit basé sur le navigateur » est un produit viable au départ.

GS1, d’où viennent les vrais codes-barres de détail

GS1 (Global Standards 1) est l’organisme de normalisation à but non lucratif qui maintient l’UPC, l’EAN, les GTIN-13/14, le GLN (Global Location Number) et le système d’Application Identifier GS1-128 utilisé dans l’expédition. GS1 compte environ 117 organisations membres nationales opérant dans plus de 150 pays ; les fabricants s’enregistrent auprès de leur organisation GS1 nationale, paient une redevance annuelle (le prix évolue avec le chiffre d’affaires de l’entreprise et le nombre de produits) et se voient attribuer un préfixe fabricant unique qui devient les chiffres de tête du GTIN de chaque produit. Cela signifie : si vous voulez un UPC ou un EAN que les distributeurs vont effectivement scanner et considérer comme votre produit, vous avez besoin d’une adhésion GS1. Un code-barres généré ici avec des chiffres arbitraires ressemblera à un UPC et se scannera comme un UPC, mais le préfixe fabricant ne sera pas enregistré à votre nom et la caisse du distributeur peut le marquer comme produit inconnu ou refuser de l’honorer. Pour le suivi d’actifs interne, les catalogues de bibliothèque, les badges de conférence, les étiquettes de salle de classe et autres usages non-commerciaux similaires, la question GS1 est sans objet, générez les chiffres que vous voulez.

Cas d’usage courants

Choisir le bon format

Pour un usage général (étiquettes d’actifs, inventaire interne, badges de conférence), choisissez Code 128: ASCII complet, haute densité, fonctionne partout. Pour les produits de détail vendus en magasin, choisissez UPC-A (États-Unis/Canada) ou EAN-13 (reste du monde), et souvenez-vous qu’il vous faut un préfixe fabricant enregistré GS1. Pour les cartons d’expédition, choisissez ITF-14 (le standard pour les cartons extérieurs contenant des produits de détail). Pour les applications logistiques et militaires où Code 39 est imposé par un système existant, choisissez Code 39. Pour les petits produits où un EAN-13 complet ne tient pas, choisissez EAN-8. Pharmacode est de niche et vous saurez si vous en avez besoin. La règle « Code 128 par défaut » couvre la plupart des cas non-commerciaux.

PNG vs SVG, choisissez la bonne sortie

SVG est le bon choix pour l’impression et tout contexte où le code-barres pourrait être redimensionné. SVG est vectoriel : les largeurs de barres restent nettes à toute échelle, d’une vignette d’1 cm sur une étiquette à un panneau de 50 cm. Le fichier est du XML simple (typiquement 2-5 Ko pour un seul code-barres) et peut être intégré en ligne dans du HTML, ouvert dans un logiciel de design vectoriel (Illustrator, Inkscape, Affinity Designer), ou envoyé à des imprimeurs commerciaux sans perte de qualité. PNG est le bon choix pour les contextes numériques où la taille est fixe et où le destinataire ne supporte pas le SVG : e-mails, vieux logiciels POS, applications d’impression d’étiquettes de bureau qui attendent des bitmaps. La sortie PNG ici est rendue à 2× la résolution pour la netteté rétina ; le fichier fait typiquement 5-15 Ko. La règle générale : si vous allez l’imprimer, choisissez SVG ; si vous allez l’envoyer par e-mail ou le coller dans une vieille app, choisissez PNG.

Confidentialité : pourquoi le tout-navigateur compte ici

Les codes-barres eux-mêmes ne sont pas secrets, mais les valeurs encodées le sont souvent. Les codes d’actifs internes révèlent la structure organisationnelle. Les étiquettes d’expédition révèlent les relations fournisseurs et les adresses clients. Les codes d’emprunt en bibliothèque révèlent les habitudes de lecture des usagers. Générer des codes-barres sur un serveur signifie que les valeurs traversent le réseau et finissent dans des journaux serveur. Cet outil encode tout dans votre navigateur via JsBarcode, vérifiez dans l’onglet Réseau des DevTools pendant que vous cliquez sur Générer, ou mettez la page hors ligne (mode avion) après son chargement et l’outil fonctionne toujours. Sûr pour l’étiquetage interne de SKU, les codes de suivi d’actifs, la génération de badges de conférence ou toute valeur de code-barres que vous ne voudriez pas voir copiée sur le disque dur d’un inconnu.

Questions fréquentes

Quel format dois-je utiliser ?

Code 128 est le défaut le plus sûr pour un usage général, ASCII complet, haute densité, fonctionne sur tout scanner moderne. Choisissez EAN-13 (international) ou UPC-A (États-Unis/Canada) pour les codes-barres de produits de détail, mais souvenez-vous qu’il vous faut une adhésion GS1 pour que le préfixe fabricant soit valide. Choisissez Code 39 pour la logistique, le militaire ou les systèmes de bibliothèque qui l’imposent. Choisissez ITF-14 pour les cartons d’expédition. EAN-8 pour les très petits produits. Pharmacode est de niche, uniquement pharmaceutique.

Puis-je vendre des produits avec ces codes-barres ?

Pour un usage interne, le suivi d’actifs, les badges de conférence et autres usages non-commerciaux similaires, oui, librement. Pour les produits que vous comptez vendre en magasin où le code-barres sera scanné en caisse et recherché dans le fichier produit principal du distributeur, vous avez besoin d’un véritable préfixe fabricant enregistré GS1. Sans cela, l’EAN-13 ou UPC-A que vous générez ici se scannera correctement (le format est valide) mais les chiffres ne seront enregistrés à votre nom dans aucun système de distributeur, et la caisse le marquera comme produit inconnu. L’adhésion GS1 commence autour de 250 à 1 000 dollars par an selon la taille de l’entreprise et le nombre de produits.

PNG ou SVG, lequel dois-je télécharger ?

SVG pour tout ce qui sera imprimé (vectoriel, se met à l’échelle parfaitement à toute taille, s’ouvre proprement dans Illustrator/Inkscape/InDesign, accepté par les imprimeurs commerciaux). PNG pour tout ce qui est numérique où la taille est fixe et où la destination ne supporte pas le SVG (vieilles apps POS, clients e-mail qui retirent le SVG, intégrations simples sur site web). Le PNG est rendu à 2× la résolution pour la netteté rétina ; le SVG est du XML simple à 2-5 Ko.

Qu’est-ce que la « zone calme » et dois-je l’ajouter ?

La zone calme est l’espace vide requis aux bords gauche et droit de tout code-barres 1D, au moins 10× la largeur de la barre la plus étroite de chaque côté. Sans elle, les scanners ne peuvent pas détecter de manière fiable où le code-barres commence et se termine. Cet outil inclut automatiquement les zones calmes appropriées dans les sorties PNG et SVG. La défaillance de production la plus courante consiste à serrer le code-barres imprimé contre un autre élément d’étiquette pour gagner de la place, brisant la zone calme, laissez les marges intactes lors de la mise en page de vos étiquettes.

Quelle est la différence entre UPC-A et EAN-13 ?

UPC-A est de 12 chiffres et est le standard de détail États-Unis/Canada (introduit en 1973, premier scan commercial le 26 juin 1974 au Marsh Supermarket à Troy, Ohio). EAN-13 est de 13 chiffres, adopté internationalement en 1976/1977. L’UPC-A à 12 chiffres peut être exprimé comme un EAN-13 à 13 chiffres en préfixant un 0, la plupart des systèmes POS modernes gèrent les deux de manière transparente. Le chiffre supplémentaire dans EAN-13 est le préfixe code pays (États-Unis/Canada = 0, France = 30-37, Allemagne = 40-44, Royaume-Uni = 50, Japon = 49 ou 45, etc.). Les deux sont désormais sous l’égide GS1 GTIN.

Mes valeurs de codes-barres sont-elles téléversées ?

Non. La génération s’exécute entièrement dans votre navigateur via JsBarcode. Les valeurs que vous saisissez ne traversent jamais le réseau, vérifiez dans l’onglet Réseau des DevTools pendant que vous cliquez sur Générer, ou mettez la page hors ligne (mode avion) après son chargement et l’outil fonctionne toujours. Sûr pour les codes SKU internes, les ID de suivi d’actifs, les données de badges de conférence ou toute valeur que vous ne voudriez pas voir copiée sur le disque dur d’un inconnu.

Outils associés