Un code-barres à barres verticales
Dessiner un code-barres que lit une douchette : Code 128, Code 39, Code 93, ITF-14, Codabar, EAN-13, UPC-A, EAN-8, UPC-E, GS1 DataBar et les deux compléments.
Résumé
Les barres noires que le caissier passe sous la petite lampe rouge. Vous donnez le cadre dans lequel elles doivent tenir, et les barres sont dessinées à la bonne largeur, avec la marge blanche que les scanners réclament de part et d'autre. Sur un code que lit une caisse de magasin, quelques barres descendent plus bas que leurs voisines — une paire à chaque bout et une au milieu — et les chiffres se composent dans l'espace qu'elles laissent. Comme elles sont vraiment dessinées et non collées comme une photo, elles restent nettes à l'impression, même sur une minuscule étiquette. Si vous voulez aussi le numéro écrit en chiffres sous les barres, vous ajoutez un bloc de texte juste en dessous. Le type de code dessiné, c'est à vous de le choisir. Le Code 128 accepte n'importe quel texte. Le Code 39 et le Code 93 acceptent les majuscules, les chiffres et quelques signes de ponctuation, ce qu'on trouve sur une étiquette d'atelier, sur un bac de magasin et sur un bracelet d'hôpital. L'ITF-14 est le code du carton de livraison qu'un magasin reçoit. Le Codabar est le code d'une poche de sang, d'une carte de bibliothèque et du bordereau d'un coursier. L'EAN-13, l'UPC-A et l'EAN-8 sont le numéro d'article que lit une caisse, et l'UPC-E est ce même numéro sur un emballage trop petit pour lui. Un morceau de viande à la coupe ou un fruit reçoit un GS1 DataBar, qui tient le numéro d'article dans un symbole lisible sous n'importe quel angle. À côté du code d'un magazine ou d'un livre se tient un plus petit bloc de barres — l'add-on, EAN-2 ou EAN-5 — qui donne le numéro de la parution ou le prix que l'éditeur conseille.
Techniquement
Demandé avec
"type": "barcode"
Les barres sont des rectangles pleins écrits directement dans le flux de contenu de la page — pas d'image, pas de police, pas de greffon de logiciel de lecture. Les barres et les zones de silence remplissent la largeur du rectangle. Un module est la barre la plus fine du code, l'unité dans laquelle toutes les autres largeurs se comptent. Sur un code de vente au détail, les barres de garde — la paire à chaque bout et la paire du milieu — prennent toute la hauteur du rectangle, et toutes les autres barres s'arrêtent cinq modules au-dessus de leur pied, ce qui est la place où se tiennent les chiffres composés sous le code ; là où cinq modules feraient plus de la moitié de la hauteur, les gardes prennent la moitié. Un Code 128 n'a pas de barres de garde : toutes ses barres prennent donc toute la hauteur. Les symbologies qu'une requête peut nommer : le Code 128 accepte les caractères ASCII imprimables. Le jeu C écrit deux chiffres dans un symbole — un compte impair ouvre dans le jeu B pour le premier chiffre — et le jeu B écrit un caractère par symbole, si bien que quatorze chiffres prennent 112 modules dans le jeu C contre 189 dans le jeu B. Laissé à lui-même, un Code 128 prend le jeu C pour un contenu de chiffres seuls et le jeu B pour tout le reste, et code_set en nomme un des deux à la place ; un contenu qui n'est pas fait de chiffres seuls est refusé dans le jeu C. Le Code 39 accepte les dix chiffres, les lettres majuscules, l'espace et les six caractères -, ., $, /, + et % ; une lettre minuscule est refusée, et check_digit ajoute le caractère de contrôle modulo 43, qu'un scanner restitue avec le texte. Le Code 93 accepte les mêmes caractères dans environ moitié moins de place et écrit toujours ses deux caractères de contrôle. L'ITF-14 tient quatorze chiffres : treize sont le numéro de carton et le chiffre de contrôle est calculé, quatorze sont le code entier et le dernier est vérifié. Le Codabar accepte les dix chiffres et les six caractères -, $, :, /, . et +, et s'ouvre et se ferme par l'un de A, B, C ou D, qu'un scanner restitue avec le reste. Pour l'EAN-13, douze chiffres sont le numéro et le chiffre de contrôle est calculé, treize sont le code entier et le chiffre de contrôle est vérifié ; la même règle vaut pour l'UPC-A à onze ou douze chiffres, pour l'EAN-8 à sept ou huit, et pour l'UPC-E à sept ou huit, dont le premier chiffre est 0 ou 1. Le GS1 DataBar Omnidirectional, le code d'un article de détail à la coupe, tient le numéro d'article à quatorze chiffres que tient un ITF-14 : treize chiffres sont le numéro et le chiffre de contrôle est calculé, quatorze sont le code entier et le dernier est vérifié, et tout autre nombre de chiffres est refusé. L'EAN-2 prend exactement deux chiffres et l'EAN-5 exactement cinq. Un texte que la symbologie choisie sait encoder est accepté ; tout le reste répond 400. Un add-on n'est pas un code à lui seul pour un scanner : il se lit comme la queue du code de détail à côté de lui, et seulement tant que les deux se tiennent près l'un de l'autre. Le rectangle est divisé par le nombre de modules du code plus vingt — dix modules blancs gardés de chaque côté — si bien que les neuf modules blancs que la norme demande entre les barres des deux codes veulent dire que le rectangle de l'add-on commence onze modules avant la fin du rectangle du code de détail, tous deux dessinés au même module. Placez-le plus loin, ou plus court que le code d'à côté, et un scanner lit le code de détail seul et laisse tomber l'add-on sans un mot : le refus d'un add-on mal placé vient à la prochaine version ; d'ici là, le client qui pose les deux sur la page tient l'écart. symbology lit les noms ci-dessus et rien d'autre.
Schéma de la requête
Clés obligatoires : content, une chaîne ; rect. Facultatives : symbology, l'une de code128 (par défaut), code39, code93, itf14, codabar, ean13, upc_a, ean8, upc_e, data_bar, add_on2 ou add_on5 ; check_digit, vrai pour écrire le caractère de contrôle modulo 43 après le texte d'un Code 39 ; code_set, b ou c, le jeu dans lequel un Code 128 est écrit, laissé de côté pour que le code prenne c sur un contenu de chiffres seuls et b sur tout le reste ; fill, la couleur des barres (noir par défaut), écrite comme la couleur s'écrit partout ailleurs : un nombre pour un gris, trois pour le rouge, le vert et le bleu, quatre pour les quatre encres, {"gray": n}, ou {"space": "name", "components": …} ; pages, un tableau d'entiers comptés à partir de 1, vide par défaut ; transform, six nombres ; rotate, degrés dans le sens inverse des aiguilles d'une montre autour du centre du rectangle ; layer, le nom d'un calque déclaré. Refus croisés : transform avec rotate, check_digit sur toute symbologie autre que code39, code_set sur toute symbologie autre que code128, et code_set mis à c sur un contenu qui n'est pas fait de chiffres seuls. L'élément dessine les barres seules ; les chiffres lisibles à l'œil se posent avec un élément text.
Une requête entière qui crée un PDF
{
"items": [
{
"type": "barcode",
"content": "FR-1964413",
"symbology": "code128",
"artifact": "footer",
"rect": {"llx": 72, "lly": 700, "urx": 237, "ury": 740}
},
{
"type": "barcode",
"content": "40063813339301",
"symbology": "code128",
"code_set": "c",
"rect": {"llx": 72, "lly": 640, "urx": 237, "ury": 680}
}
]
}
Les codes-barres et les codes carrés
Un code QR carré, lisible au téléphone Un code Aztec, sans marge blanche autour Un code Data Matrix, très petit et très solide Un code PDF417, qui contient tout un formulaire
Où aller ensuite
Toutes les clés JSON d'une requête, en une page Les vingt-deux autres choses que l'on peut dessiner