Barcode Generator pour PHP
Barcode Generator pour ASP.NET
Manuel 1D - GS1-128 (EAN-128) << Retour

Introduction

Le code GS1-128 est une normalisation des standards du GS1 basé sur le code 128. Ce code est un standard international permettant l'échange de données entre producteurs et distributeurs. Le GS1-128 doit commencer par la fonction 1 (~F1). Il peut contenir plusieurs identifiants, il ne doit cependant pas dépasser 48 caractères, cette limite exclut le caractère obligatoire ~F1. Afin de faciliter la lecture, les identifiants sont entourés de parenthèses dans le texte qui accompagne le code barre; ces parenthèses ne sont pas encodées dans le code barre.

Il existe différentes façons d'envoyer le contenu de votre code barre à la méthode parse(), par exemple, le code suivant :

IdentifiantContenu
0112345678912343
92123
15880422

(01)12345678912343(92)123(15)880422

peut être encodé comme suit

  • Une chaine formatée :
    parse('(01)12345678912343(92)123~F1(15)880422')
  • Une chaine non formatée :
    parse('011234567891234392123~F115880422')
  • Un tableau simple formaté :
    parse(array('(01)12345678912343', '(92)123', '(15)880422'))
  • Un tableau simple mixte :
    parse(array('0112345678912343', '(92)123~F15880422'))
  • Un tableau double contenant des couples (ID, CONTENU)
    parse(array(array('01', '12345678912343'), array('92', '123'), array('15', '880422')))

* Note sur ~F1 : Si vous envoyez votre contenu dans une chaine, vous devez ajouter un séparateur à la fin de votre identifiant si ce dernier ne couvre pas le maximum et qu'il n'est pas positionné à la fin du code.

Si vous n'avez pas indiqué de checksum dans votre contenu et que ce dernier est obligatoire, il sera calculé automatiquement,
ex: parse('011234567891234') donnera : (01)1234567891234 3

Il existe deux standards pour le GS1-128, le mode strict et le mode legacy. En mode legacy, des séparateurs seront ajoutés entre chaque identifiant. En mode strict, des séparateurs seront ajoutés que si le contenu de l'identifiant ne couvre pas le maximum autorisé. Dans ce dernier mode, il est fortement recommandé d'utiliser la table C si vous n'utilisez que des chiffres dans le code barre. Voici un exemple afin de mieux comprendre la différence entre ces deux modes :

Mode Legacy :
(01)contenu de taille fixe [Séparateur] (91)contenu de taille variable [Séparateur] (8020)contenu de taille variable

Mode Strict :
(01)contenu de taille fixe (91)contenu de taille variable [Séparateur *] (8020)contenu de taille variable

* L'identifiant 91 doit comporter entre 1 et 30 caractères. Si ce dernier comporte 30 caractères, il n'y a aucun séparateur qui sera ajouté.

Liste des identifiants :

IdNomTypeTailleChecksum
00Serial Shipping Container Code (SSCC-18)Numérique2 + 18Oui
01Shipping Container Code (SSC)Numérique2 + 14Oui
02Number of containersNumérique2 + 14Oui
10Batch NumberAlphanumérique2 + 1 à 20Non
11Production DateDate2 + 6Non
12Due dateDate2 + 6Non
13Packaging DateDate2 + 6Non
15Sell by Date (Quality Control)Date2 + 6Non
17Expiration DateDate2 + 6Non
20Product VariantNumérique2 + 2Non
21Serial NumberAlphanumérique2 + 1 à 20Non
240Additional Product IdentificationAlphanumérique3 + 1 à 30Non
241Customer part numberAlphanumérique3 + 1 à 30Non
250Second Serial NumberAlphanumérique3 + 1 à 30Non
251Reference to source entityAlphanumérique3 + 1 à 30Non
253Global Document Type IdentifierNumérique3 + 14 à 30Non
30Quantity EachNumérique2 + 1 à 8Non
310yProduct Net Weight in kgNumérique4 + 6Non
311yProduct Length/1st Dimension, in metersNumérique4 + 6Non
312yProduct Width/Diameter/2nd Dimension, in metersNumérique4 + 6Non
313yProduct Depth/Thickness/3rd Dimension, in metersNumérique4 + 6Non
314yProduct Area, in square metersNumérique4 + 6Non
315yProduct Volume, in litersNumérique4 + 6Non
316yproduct Volume, in cubic metersNumérique4 + 6Non
320yProduct Net Weight, in poundsNumérique4 + 6Non
321yProduct Length/1st Dimension, in inchesNumérique4 + 6Non
322yProduct Length/1st Dimension, in feetNumérique4 + 6Non
323yProduct Length/1st Dimension, in yardsNumérique4 + 6Non
324yProduct Width/Diameter/2nd Dimension, in inchesNumérique4 + 6Non
325yProduct Width/Diameter/2nd Dimension, in feetNumérique4 + 6Non
326yProduct Width/Diameter/2nd Dimension, in yardsNumérique4 + 6Non
327yProduct Depth/Thickness/3rd Dimension, in inchesNumérique4 + 6Non
328yProduct Depth/Thickness/3rd Dimension, in feetNumérique4 + 6Non
329yProduct Depth/Thickness/3rd Dimension, in yardsNumérique4 + 6Non
330yContainer Gross Weight (Kg)Numérique4 + 6Non
331yContainer Length/1st Dimension (Meters)Numérique4 + 6Non
332yContainer Width/Diameter/2nd Dimension (Meters)Numérique4 + 6Non
333yContainer Depth/Thickness/3rd Dimension (Meters)Numérique4 + 6Non
334yContainer Area (Square Meters)Numérique4 + 6Non
335yContainer Gross Volume (Liters)Numérique4 + 6Non
336yContainer Gross Volume (Cubic Meters)Numérique4 + 6Non
337yKilograms per square meterNumérique4 + 6Non
340yContainer Gross Weight (Pounds)Numérique4 + 6Non
341yContainer Length/1st Dimension, in inchesNumérique4 + 6Non
342yContainer Length/1st Dimension, in feetNumérique4 + 6Non
343yContainer Length/1st Dimension in, in yardsNumérique4 + 6Non
344yContainer Width/Diameter/2nd Dimension, in inchesNumérique4 + 6Non
345yContainer Width/Diameter/2nd Dimension, in feetNumérique4 + 6Non
346yContainer Width/Diameter/2nd Dimension, in yardsNumérique4 + 6Non
347yContainer Depth/Thickness/Height/3rd Dimension, in inchesNumérique4 + 6Non
348yContainer Depth/Thickness/Height/3rd Dimension, in feetNumérique4 + 6Non
349yContainer Depth/Thickness/Height/3rd Dimension, in yardsNumérique4 + 6Non
350yProduct Area (Square Inches)Numérique4 + 6Non
351yProduct Area (Square Feet)Numérique4 + 6Non
352yProduct Area (Square Yards)Numérique4 + 6Non
353yContainer Area (Square Inches)Numérique4 + 6Non
354yContainer Area (Square Feet)Numérique4 + 6Non
355yContainer Area (Square Yards)Numérique4 + 6Non
356yNet Weight (Troy Ounces)Numérique4 + 6Non
357yKilograms per square meterNumérique4 + 6Non
360yProduct Volume (Quarts)Numérique4 + 6Non
361yProduct Volume (Gallons)Numérique4 + 6Non
362yContainer Gross Volume (Quarts)Numérique4 + 6Non
363yContainer Gross Volume (Gallons)Numérique4 + 6Non
364yProduct Volume (Cubic Inches)Numérique4 + 6Non
365yProduct Volume (Cubic Feet)Numérique4 + 6Non
366yProduct Volume (Cubic Yards)Numérique4 + 6Non
367yContainer Gross Volume (Cubic Inches)Numérique4 + 6Non
368yContainer Gross Volume (Cubic Feet)Numérique4 + 6Non
369yContainer Gross Volume (Cubic Yards)Numérique4 + 6Non
37Number of Units ContainedNumérique2 + 1 à 8Non
390yAmount payable-single monetary areaNumérique4 + 1 à 15Non
391yAmount payable with ISO currency codeNumérique4 + 4 à 18Non
392yAmount payable for a Variable Measure Trade Item single monetary unitNumérique4 + 1 à 15Non
393yAmount payable for a Variable Measure Trade Item - with ISO currency codeNumérique4 + 4 à 18Non
400Customer Purchase Order NumberAlphanumérique3 + 1 à 30Non
401Consignment numberAlphanumérique3 + 1 à 30Non
402Shipment Identification NumberNumérique3 + 17Non
403Routing codeAlphanumérique3 + 1 à 30Non
410Ship To/Deliver To Location Code (EAN13 or DUNS code)Numérique3 + 13Oui
411Bill To/Invoice Location Code (EAN13 or DUNS code)Numérique3 + 13Oui
412Purchase From Location Code (EAN13 or DUNS code)Numérique3 + 13Oui
413Ship for - deliver for - forward to EAN.UCC Global Location NumberNumérique3 + 13Oui
414Identification of a physical location EAN.UCC Global Location NumberNumérique3 + 13Oui
415EAN.UCC Global Location Number of the invoicing partyNumérique3 + 13Oui
420Ship To/Deliver To Postal Code (Single Postal Authority)Alphanumérique3 + 1 à 20Non
421Ship To/Deliver To Postal Code (Multiple Postal Authority)Alphanumérique3 + 4 à 12Non
422Country of origin of a trade itemNumérique3 + 3Non
8001Roll Products - Width/Length/Core DiameterNumérique4 + 14Non
8002Electronic Serial Number (ESN) for Cellular PhoneAlphanumérique4 + 1 à 20Non
8003UPC/EAN Number and Serial Number of Returnable AssetAlphanumérique4 + 15 à 30Non
8004UPC/EAN Serial IdentificationAlphanumérique4 + 1 à 30Non
8005Price per Unit of MeasureNumérique4 + 6Non
8006Identification of the component of a trade itemNumérique4 + 18Non
8007International Bank Account NumberAlphanumérique4 + 1 à 30Non
8018EAN.UCC Global Service Relation NumberNumérique4 + 18Non
8020Payment Slip Reference NumberAlphanumérique4 + 1 à 25Non
8100Coupon Extended Code: Number System and OfferNumérique4 + 6Non
81018101 Coupon Extended Code: Number System, Offer, End of OfferNumérique4 + 10Non
8102Coupon Extended Code: Number System preceded by 0Numérique4 + 2Non
90Mutually Agreed Between Trading PartnersAlphanumérique2 + 1 à 30Non
91Internal Company CodesAlphanumérique2 + 1 à 30Non
92Internal Company CodesAlphanumérique2 + 1 à 30Non
93Internal Company CodesAlphanumérique2 + 1 à 30Non
94Internal Company CodesAlphanumérique2 + 1 à 30Non
95Internal Company CodesAlphanumérique2 + 1 à 30Non
96Internal Company CodesAlphanumérique2 + 1 à 30Non
97Internal Company CodesAlphanumérique2 + 1 à 30Non
98Internal Company CodesAlphanumérique2 + 1 à 30Non
99Internal Company CodesAlphanumérique2 + 1 à 30Non

* La date est de format "AAMMDD".

Cette classe hérite de la classe BCGcode128.

Méthodes de BCGgs1128Méthodes de BCGcode128Méthodes de BCGBarcode1DMéthodes de BCGBarcode
Exemple
<?php
require('class/BCGFont.php');
require('class/BCGColor.php');
require('class/BCGDrawing.php');
require('class/BCGgs1128.barcode.php');

$font = new BCGFont('./class/font/Arial.ttf', 18);
$color_black = new BCGColor(0, 0, 0);
$color_white = new BCGColor(255, 255, 255);

$code = new BCGgs1128();
$code->setScale(2);
$code->setThickness(30);
$code->setForegroundColor($color_black);
$code->setBackgroundColor($color_white);
$code->setFont($font);
$code->setStrictMode('true');
$code->parse('011234567891234');

// Drawing Part
$drawing = new BCGDrawing('', $color_white);
$drawing->setBarcode($code);
$drawing->draw();

header('Content-Type: image/png');

$drawing->finish(BCGDrawing::IMG_FORMAT_PNG);
?>

Explication des Méthodes
__construct($start = NULL) — Spécifie par quelle table doit commencer le code barre
Description
L'argument peut être A, B ou C. Voyez la méthode setStart() pour de plus amples informations. La valeur par défaut est C.
setStrictMode($mode) — Spécifie quel mode à utiliser pour générer le code barre
Description
En utilisant true, le mode strict (mode par défaut) est utilisé, si vous mettez false, le code sera généré en suivant le mode legacy. Pour plus d'informations à propos de ces deux modes, référez-vous à l'introduction.
__construct($start = NULL) — Spécifie par quelle table doit commencer le code barre
Description
L'argument peut être A, B ou C. Voyez la méthode setStart() pour de plus amples informations. La valeur par défaut est NULL. Cela signifie que la table est choisie automatiquement.
setStart($start) — Spécifie par quelle table doit commencer le code barre
Description
L'argument peut être A, B, C ou NULL. Cela signifie par quelle table doit commencer le code barre. La valeur par défaut est NULL. Cela signifie que la table sera automatiquement choisie lorsque vous fournissez le texte.
Les tables comportent différents caractères qui peuvent être encodés dans le code barre.
Référez-vous à l'introduction de ce document pour obtenir plus d'informations.
setTilde($tilde) — Spécifie si le tilde ~ doit être traité
Description
En mettant true à l'argument de cette méthode, les caractères tilde (ASCII 126 ~) seront pris comme des caractères spéciaux. Voici les caractères spéciaux que vous pouvez écrire.
  • ~~ : Écrit un simple tilde
  • ~Fx : Écrit le caractère FNCx, avec x variant de 1 à 4.
La valeur par défaut est true.
setThickness($thickness) — Spécifie l'épaisseur du code barre
Description
L'épaisseur du code barre est en pixel. Il s'agit de la grandeur verticale.
Cette valeur est multipliée par la résolution. Référez-vous à la méthode setScale().
La valeur par défaut est 30.
getThickness() — Retourne l'épaisseur du code barre
Description
L'épaisseur du code barre est en pixel. La valeur n'est pas multipliée par la résolution.
setLabel($label) — Spécifie le texte qui accompagne le code barre
Description
Le texte sera écrit au dessous ou au dessus du code barre dépendamment de celui-ci. Vous pouvez écrire la valeur spéciale BCGBarcode1D::AUTO_LABEL si vous souhaitez que le texte soit automatiquement choisi. Il sera alors la valeur du texte passé à la méthode parse().
getLabel() — Retourne le texte qui accompagne le code barre
Description
Retourne la vraie valeur qui serait affichée avec le code barre. Vous devez avoir appelé la méthode parse().
setFont($font) — Spécifie la police du texte qui accompagne le code barre
Description
La valeur de l'argument peut être soit une instance de la classe BCGFont ou un chiffre de 1 à 5.
Vous pourrez spécifier une police spécifique avec la classe BCGFont, alors qu'avec les chiffres, les polices de PHP seront utilisées. Référez-vous au manuel PHP.
parse($text) — Analyse un message $text pour dessiner par la suite
Description
Les données que vous passez à l'argument $text doivent être supportées par le code barre que vous utilisez.
Référez-vous à l'introduction du code barre pour obtenir plus d'informations.
draw($im) — Dessine le code barre sur l'image $im
Description
La valeur de l'argument $im doit être une ressource image GD2. La taille de l'image peut être définie avec la valeur reçue de getMaxSize().
getMaxSize() — Retourne un tableau concernant la taille de l'image requise
Description
Retourne un tableau dont le premier index est la largeur de l'image et le deuxième index est la hauteur de l'image. La classe BCGDrawing utilise cette fonction pour créer la ressource d'image.
Retourne
array(int, int) - [0] étant la largeur, [1] étant la hauteur
getScale() — Retourne la résolution du code barre
Description
Retourne la taille du code barre. La veleur correspond à la "plus petite" unité exprimée en pixel.
Retourne
int - valeur en pixel
setScale($x) — Fixe la résolution du code barre
Description
Le code barre sera $x fois plus grand. Un pixel sera alors de taille $x par $x.
setForegroundColor($color) — Fixe la couleur du code barre
Description
La couleur des barres du code barre. Par défaut, la couleur est noire. L'argument peut être soit une classe BCGColor ou n'importe quel autre argument que la classe BCGColor peut accepter à son constructeur.
setBackgroundColor($color) — Fixe la couleur du fond
Description
La couleur de fond du code barre. Par défaut, la couleur est blanche. L'argument peut être soit une classe BCGColor ou n'importe quel autre argument que la classe BCGColor peut accepter à son constructeur.
setColor($fg, $bg) — Fixe la couleur du code barre et de fond
Description
Méthode plus rapide pour fixer la couleur de premier plan et de dernier plan. Référez-vous à setForegroundColor() et setBackgroundColor().
setOffsetX($v) — Spécifie le décalage en X
Description
Spécifie le décalage en X du code barre en pixel multiplié par l'échelle. La taille requise retournée par getMaxSize() sera modifiée en conséquence.
setOffsetY($v) — Spécifie le décalage en Y
Description
Spécifie le décalage en Y du code barre en pixel multiplié par l'échelle. La taille requise retournée par getMaxSize() sera modifiée en conséquence.
Sélectionnez Langue : English