Manuel - BCGgs1128

Introduction

Le code GS1-128 est une normalisation des standards du http://www.gs1.org/ basé sur le BCGcode128. 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-barres; ces parenthèses ne sont pas encodées dans le code-barres.

Il existe différentes façons d'envoyer le contenu de votre code-barres à 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~F115880422'))
  • 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-barres. Voici un exemple afin de mieux comprendre la différence entre ces deux modes :

Mode Legacy :
(01) contenu de taille fixe [Separator] (91) contenu de taille variable [Separator] (8020) contenu de taille variable

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

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

Liste d'Identifiants:

IdNomTypeTailleChecksum
00 Serial Shipping Container Code (SSCC-18) Numeric 2 + 18 Oui
01 Global Trade Item Number (GTIN) Numeric 2 + 14 Oui
02 GTIN of Contained Trade Items Numeric 2 + 14 Oui
10 Batch or Lot Number Alphanumeric 2 + 1 à 20 Non
11 Production Date Date 2 + 6 Non
12 Due Date Date 2 + 6 Non
13 Packaging Date Date 2 + 6 Non
15 Best Before Date Date 2 + 6 Non
16 Sell By Date Date 2 + 6 Non
17 Expiration Date Date 2 + 6 Non
20 Internal Product Variant Numeric 2 + 2 Non
21 Serial Number Alphanumeric 2 + 1 à 20 Non
22 Consumer Product Variant Alphanumeric 2 + 1 à 20 Non
240 Additional Item Identification Alphanumeric 3 + 1 à 30 Non
241 Customer Part Number Alphanumeric 3 + 1 à 30 Non
242 Made-to-Order Variation Number Alphanumeric 3 + 1 à 6 Non
243 Packaging Comnponent Number Alphanumeric 3 + 1 à 20 Non
250 Second Serial Number Alphanumeric 3 + 1 à 30 Non
251 Reference to Source Entity Alphanumeric 3 + 1 à 30 Non
253 Global Document Type Identifier (GDTI) Numeric 3 + 14 à 30 Non
254 GLN Extension Component Numeric 3 + 1 à 20 Non
255 Global Coupon Number (GCN) Numeric 3 + 14 à 25 Non
30 Variable Count of Items (variable measure trade item) Numeric 2 + 1 à 8 Non
310y Net Weight in kilograms (variable measure trade item) Numeric 4 + 6 Non
311y Length or 1st Dimension, in meters (variable measure trade item) Numeric 4 + 6 Non
312y Width, Diameter, or 2nd Dimension, in meters (variable measure trade item) Numeric 4 + 6 Non
313y Depth, Thickness, Height, or 3rd Dimension, in meters (variable measure trade item) Numeric 4 + 6 Non
314y Area, in square meters (variable measure trade item) Numeric 4 + 6 Non
315y Net Volume, in liters (variable measure trade item) Numeric 4 + 6 Non
316y Net Volume, in cubic meters (variable measure trade item) Numeric 4 + 6 Non
320y Net Weight, in pounds (variable measure trade item) Numeric 4 + 6 Non
321y Length or 1st Dimension, in inches (variable measure trade item) Numeric 4 + 6 Non
322y Length or 1st Dimension, in feet (variable measure trade item) Numeric 4 + 6 Non
323y Length, 1st Dimension, in yards (variable measure trade item) Numeric 4 + 6 Non
324y Width, Diameter, or 2nd Dimension, in inches (variable measure trade item) Numeric 4 + 6 Non
325y Width, Diameter, or 2nd Dimension, in feet (variable measure trade item) Numeric 4 + 6 Non
326y Width, Diameter, or 2nd Dimension, in yards (variable measure trade item) Numeric 4 + 6 Non
327y Depth, Thickness, Height, or 3rd Dimension, in inches (variable measure trade item) Numeric 4 + 6 Non
328y Depth, Thickness, Height, or 3rd Dimension, in feet (variable measure trade item) Numeric 4 + 6 Non
329y Depth, Thickness, Height, or 3rd Dimension, in yards (variable measure trade item) Numeric 4 + 6 Non
330y Logistic Weight, in kilograms Numeric 4 + 6 Non
331y Length, or 1st Dimension, in meters Numeric 4 + 6 Non
332y Width, Diameter, or 2nd Dimension, in meters Numeric 4 + 6 Non
333y Depth, Thickness, Height, or 3rd Dimension, in meters Numeric 4 + 6 Non
334y Area, in square meters Numeric 4 + 6 Non
335y Logistic Volume, in liters Numeric 4 + 6 Non
336y Logistic Volume, in cubic meters Numeric 4 + 6 Non
337y Kilograms per square meter Numeric 4 + 6 Non
340y Logistic Weight, in pounds Numeric 4 + 6 Non
341y Length or 1st Dimension, in inches Numeric 4 + 6 Non
342y Length or 1st Dimension, in feet Numeric 4 + 6 Non
343y Container Length/1st Dimension in, in yards Numeric 4 + 6 Non
344y Width, Diameter, or 2nd Dimension, in inches Numeric 4 + 6 Non
345y Width, Diameter, or 2nd Dimension, in feet Numeric 4 + 6 Non
346y Width, Diameter, or 2nd Dimension, in yards Numeric 4 + 6 Non
347y Depth, Thickness, Height, or 3rd Dimension, in inches Numeric 4 + 6 Non
348y Depth, Thickness, Height, or 3rd Dimension, in feet Numeric 4 + 6 Non
349y Depth, Thickness, Height, 3rd Dimension, in yards Numeric 4 + 6 Non
350y Area, in square inches (variable measure trade item) Numeric 4 + 6 Non
351y Area, in square feet (variable measure trade item) Numeric 4 + 6 Non
352y Area, in square yards (variable measure trade item) Numeric 4 + 6 Non
353y Area, in square inches Numeric 4 + 6 Non
354y Area, in square feet Numeric 4 + 6 Non
355y Area, in square yards Numeric 4 + 6 Non
356y Net Weight, in troy ounces (variable measure trade item) Numeric 4 + 6 Non
357y Net Weight or volume, in ounces (variable measure trade item) Numeric 4 + 6 Non
360y Net Volume, in quarts (variable measure trade item) Numeric 4 + 6 Non
361y Net Volume, in U.S. gallons (variable measure trade item) Numeric 4 + 6 Non
362y Logistic Volume, in quarts Numeric 4 + 6 Non
363y Logistic Volume, in U.S. gallons Numeric 4 + 6 Non
364y Net Volume, in cubic inches (variable measure trade item) Numeric 4 + 6 Non
365y Net Volume, in cubic feet (variable measure trade item) Numeric 4 + 6 Non
366y Net Volume, in cubic yards (variable measure trade item) Numeric 4 + 6 Non
367y Logistic Volume, in cubic inches Numeric 4 + 6 Non
368y Logistic Volume, in cubic feet Numeric 4 + 6 Non
369y Logistic Volume, in cubic yards Numeric 4 + 6 Non
37 Count of trade items Numeric 2 + 1 à 8 Non
390y Applicable Amount Payable or Coupon Value, in local currency Numeric 4 + 1 à 15 Non
391y Applicable Amount Payable with ISO Currency Code Numeric 4 + 4 à 18 Non
392y Applicable Amount Payable, Single Monetary Area (variable measure trade item) Numeric 4 + 1 à 15 Non
393y Applicable Amount Payable With ISO Currency Code (variable measure trade item) Numeric 4 + 4 à 18 Non
394y Percentage Discount of a Coupon Numeric 4 + 4 Non
400 Customer's Purchase Order Number Alphanumeric 3 + 1 à 30 Non
401 Global Identification Number for Consignment (GINC) Alphanumeric 3 + 1 à 30 Non
402 Global Shipment Identification Number (GSIN) Numeric 3 + 17 Non
403 Routing Code Alphanumeric 3 + 1 à 30 Non
410 Ship To/Deliver To Global Location Number Numeric 3 + 13 Oui
411 Bill To/Invoice To Global Location Number Numeric 3 + 13 Oui
412 Purchased From Global Location Number Numeric 3 + 13 Oui
413 Ship For/Deliver For/Forward To Global Location Number Numeric 3 + 13 Oui
414 Identification of a Physical Location - Global Location Number Numeric 3 + 13 Oui
415 Global Location Number of The Invoicing Party Numeric 3 + 13 Oui
416 Global Location Number of The Production or Service Location Numeric 3 + 13 Oui
420 Ship To/Deliver To Postal Code Within a Single Postal Authority Alphanumeric 3 + 1 à 20 Non
421 Ship To/Deliver To Postal Code With ISO Country Code Alphanumeric 3 + 4 à 12 Non
422 Country of Origin of a Trade Item Numeric 3 + 3 Non
423 Country of Initial Processing Numeric 3 + 3 à 15 Non
424 Country of Processing Numeric 3 + 3 Non
425 Country of Disassembly Numeric 3 + 3 Non
426 Country Covering Full Process Chain Numeric 3 + 3 Non
427 Country Subdivision of Origin Alphanumeric 3 + 1 à 3 Non
7001 NATO Stock Number (NSN) Numeric 4 + 13 Non
7002 UN/ECE Meat Carcasses and Cuts Classification Alphanumeric 4 + 1 à 30 Non
7003 Expiration Date and Time Numeric 4 + 10 Non
7004 Active Potency Numeric 4 + 1 à 4 Non
7005 Catch Area Alphanumeric 4 + 1 à 12 Non
7006 First Freeze Date Numeric 4 + 6 Non
7007 Harvest Date Numeric 4 + 6 à 12 Non
7008 Species For Fishery Purposes Alphanumeric 4 + 1 à 3 Non
7009 Fishing Gear Type Alphanumeric 4 + 1 à 10 Non
7010 Production Method Alphanumeric 4 + 1 à 2 Non
7020 Refurbishment Lot ID Alphanumeric 4 + 1 à 20 Non
7021 Functional Status Alphanumeric 4 + 1 à 20 Non
7022 Revision Status Alphanumeric 4 + 1 à 20 Non
7023 Global Individual Asset Identifier (GIAI) of an Assembly Alphanumeric 4 + 1 à 30 Non
703s Number of Processor with ISO Country Code Alphanumeric 4 + 3 à 30 Non
710 National Healthcare Reimbursement Number (NHRN) - Germany PZN Alphanumeric 3 + 1 à 20 Non
711 National Healthcare Reimbursement Number (NHRN) - France CIP Alphanumeric 3 + 1 à 20 Non
712 National Healthcare Reimbursement Number (NHRN) - Spain CN Alphanumeric 3 + 1 à 20 Non
8001 Roll Products - Width/Length/Core Diameter/Direction/Splices Numeric 4 + 14 Non
8002 Cellular Mobile Telphone Identifier Alphanumeric 4 + 1 à 20 Non
8003 Global Returnable Asset Identifier (GRAI) Alphanumeric 4 + 15 à 30 Non
8004 Global Individual Asset Identifier (GIAI) Alphanumeric 4 + 1 à 30 Non
8005 Price per Unit of Measure Numeric 4 + 6 Non
8006 Identification of an Individual Trade Item Piece Numeric 4 + 18 Non
8007 International Bank Account Number (IBAN) Alphanumeric 4 + 1 à 34 Non
8008 Date and Time of Production Numeric 4 + 8 à 12 Non
8010 Component/Part Identifier (CPID) Alphanumeric 4 + 1 à 30 Non
8011 Component/Part Identifier Serial Number (CPID Serial) Numeric 4 + 1 à 12 Non
8012 Software Version Alphanumeric 4 + 1 à 20 Non
8017 Global Service Relation Number to Identify the Relationship Between an Organisation Offering Services and the Provider of Services Numeric 4 + 18 Non
8018 Global Service Relation Number to Identify the Relationship Between an Organisation Offering Services and the Recipient of Services Numeric 4 + 18 Non
8019 Service Relation Instance Number (SRIN) Numeric 4 + 1 à 10 Non
8020 Payment Slip Reference Number Alphanumeric 4 + 1 à 25 Non
8110 Coupon Code Identification for Use in North America Alphanumeric 4 + 1 à 70 Non
8111 Loyalty Points of a Coupon Numeric 4 + 4 Non
8112 Paperless Coupon Code Identification for Use in North America (AI 8112) Alphanumeric 4 + 1 à 70 Non
8200 Extended Packaging URL Alphanumeric 4 + 1 à 70 Non
90 Information Mutually Agreed Between Trading Partners Alphanumeric 2 + 1 à 30 Non
91 Internal Company Codes Alphanumeric 2 + 1 à 90 Non
92 Internal Company Codes Alphanumeric 2 + 1 à 90 Non
93 Internal Company Codes Alphanumeric 2 + 1 à 90 Non
94 Internal Company Codes Alphanumeric 2 + 1 à 90 Non
95 Internal Company Codes Alphanumeric 2 + 1 à 90 Non
96 Internal Company Codes Alphanumeric 2 + 1 à 90 Non
97 Internal Company Codes Alphanumeric 2 + 1 à 90 Non
98 Internal Company Codes Alphanumeric 2 + 1 à 90 Non
99 Internal Company Codes Alphanumeric 2 + 1 à 90 Non
* La date est de format "AAMMDD".

Cette classe hérite de la classe BCGcode128.

Exemple

Méthodes

Méthodes de BCGgs1128

Méthodes de BCGBarcode1D

Méthodes de BCGBarcode

Exemple de Code


<?php
use BarcodeBakery\Common\BCGFontFile;
use BarcodeBakery\Common\BCGColor;
use BarcodeBakery\Common\BCGDrawing;
use BarcodeBakery\Barcode\BCGgs1128;

$font = new BCGFontFile(__DIR__ . '/font/Arial.ttf', 18);
$colorFront = new BCGColor(0, 0, 0);
$colorBack = new BCGColor(255, 255, 255);

// Barcode Part
$code = new BCGgs1128();
$code->setScale(2);
$code->setThickness(30);
$code->setForegroundColor($colorFront);
$code->setBackgroundColor($colorBack);
$code->setFont($font);
$code->setStrictMode(true);
$code->parse('011234567891234');

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

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

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

Explications des Méthodes

  • __construct($start) — Spécifie par quelle table doit commencer le code-barres
    Description
    L'argument peut être A, B, C ou null. Voyez la méthode setStart() pour de plus amples informations.
    La valeur par défaut est C.
  • getStrictMode() — Retourne si le mode strict est activé
    Description
    Voyez aussi setStrictMode() pour plus de détails.
    Retourne
    bool - true si activé, false autrement
  • setStrictMode($mode) — Spécifie quel mode à utiliser pour générer le code-barres
    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.
  • getAllowsUnknownIdentifier() — Retourne si des identifiants inconnus sont autorisés
    Description
    Voyez aussi setAllowsUnknownIdentifier() pour plus de détails.
    Retourne
    bool - true si activé, false autrement
  • setAllowsUnknownIdentifier($allow) — Spécifie si les identifiants inconnus sont autorisés
    Description
    En utilisant true, vous aurez le droit d'utiliser n'importe quel identifiant.
    Dans ce cas, un caractère ~F1 sera ajouté à chaque fin d'identifiant même s'il n'est pas nécessaire.
    La valeur par défaut est false.
  • getNoLengthLimit() — Retourne si aucune limite n'est enforcée
    Description
    Voyez aussi setNoLengthLimit() pour plus de détails.
    Retourne
    bool - true si activé, false autrement
  • setNoLengthLimit($noLengthLimit) — Spécifie si aucune limite est autorisée
  • getThickness() — Retourne l'épaisseur du code-barres
    Description
    L'épaisseur du code-barres est en pixel. La valeur n'est pas multipliée par la résolution.
    Retourne
    int - valeur en pixel
  • setThickness($thickness) — Spécifie l'épaisseur du code-barres
    Description
    L'épaisseur du code-barres est en pixel. Il s'agit de la grandeur verticale.
  • getLabel() — Retourne le texte qui accompagne le code-barres
    Description
    Retourne la vraie valeur qui serait affichée avec le code-barres. Vous devez avoir appelé la méthode parse() .
    Retourne
    string - valeur finale
  • setLabel($label) — Spécifie le texte qui accompagne le code-barres
    Description
    Le texte sera écrit au dessous ou au dessus du code-barres 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().
  • getFont() — Retourne la police du texte qui accompagne le code-barres
    Description
    Retourne la police du texte qui accompagne le code-barres.
    Retourne
  • setFont($font) — Spécifie la police du texte qui accompagne le code-barres
    Description
    La valeur de cet argument peut soit être une instance de BCGFontFile class, BCGFontPhp, ou un chiffre de 1 à 5.
    Si vous utilisez un chiffre etre 1 et 5, la police de PHP est utilisée. Référez-vous au Manuel PHP.
  • getChecksum() — Retourne le checksum ajouté au code-barres
    Description
    Retourne la valeur qui sera ajoutée au texte qui accompagne le code-barres. Cette méthode doit être appelée après la méthode parse().
    Retourne
    int - checksum ajouté ou false s'il n'y a pas de checksum
  • setDisplayChecksum($display) — Spécifie que le checksum soit ajouté au texte qui accompagne le code-barres
    Description
    Spécifier true ajoutera le checksum au texte qui accompagne le code-barres par défaut.
    La valeur par défaut est true.
  • 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 type de code-barres que vous utilisez.
    Référez-vous à l'introduction de chaque code-barres pour obtenir plus d'informations comment utiliser cette méthode pour chaque type de code-barres.
  • draw($im) — Dessine le code-barres sur l'image $im
    Description
    La valeur de l'argument $im doit être une image ressource. La taille de l'image peut être définie avec la valeur reçue de getDimension().
  • getDimension($w, $h) — 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.
    Les arguments sont utilisés pour spécifier le point de départ du dessin. Ils devraient être 0.
    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-barres
    Description
    Retourne la taille du code-barres. La valeur correspond à la "plus petite" unité exprimée en pixel.
    Retourne
    int - valeur en pixels
  • setScale($scale) — Fixe la résolution du code-barres
    Description
    Le code-barres sera $x fois plus grand. Un pixel sera alors de taille $x par $x.
  • getForegroundColor() — Retourne la couleur des barres
    Description
    Retourne la couleur des barres du code-barres.
    Retourne
  • setForegroundColor($color) — Fixe la couleur des barres
    Description
    La couleur des barres du code-barres. 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.
  • getBackgroundColor() — Retourne la couleur des espaces
    Description
    Retourne la couleur des espaces du code-barres.
    Retourne
  • setBackgroundColor($color) — Fixe la couleur des espaces
    Description
    La couleur des espaces du code-barres. 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 des barres et des espaces
    Description
    Une méthode plus rapide pour fixer la couleur de premier plan et de l'arrière-plan. Référez-vous à setForegroundColor() et setBackgroundColor().
  • getOffsetX() — Retourne le décalage en X
    Description
    Retourne le décalage en X en pixel. Cette valeur n'est pas multipliée par la résolution.
    Retourne
    int - valeur en pixels
  • setOffsetX($value) — Spécifie le décalage en X
    Description
    Spécifie le décalage en X du code-barres en pixel multiplié par la résolution. La taille requise retournée par getDimension() sera modifiée en conséquence.
  • getOffsetY() — Retourne le décalage en Y
    Description
    Retourne le décalage en Y en pixel. Cette valeur n'est pas multipliée par la résolution.
    Retourne
    int - valeur en pixels
  • setOffsetY($value) — Spécifie le décalage en Y
    Description
    Spécifie le décalage en Y du code-barres en pixel multiplié par la résolution. La taille requise retournée par getDimension() sera modifiée en conséquence.
  • addLabel($label) — Ajoute un texte qui accompagne le dessin
    Description
    Ajoute un objet BCGLabel au dessin.
  • removeLabel($label) — Supprime un texte qui accompagne le dessin
    Description
    Supprime un objet BCGLabel spécifique du graphique.
  • clearLabels() — Supprime les textes qui accompagnent le dessin
    Description
    Supprime tous les objets BCGLabel du dessin.