Un helper pour générer / vérifier des codebarres.
composer require thalassa-web/barcode-helper
- Code 93
- Format police de caractère (EnumBarcode::CODE_93_FONT)
- Format binaire (EnumBarcode::CODE_93_BIN)
- EAN 13
- Format police de caractère (EnumBarcode::EAN_13_FONT)
- Format binaire (EnumBarcode::EAN_13_BIN)
- Code 128
- Format police de caractère (EnumBarcode::CODE_128_FONT)
- Format binaire (EnumBarcode::CODE_128_BIN)
use ThalassaWeb\BarcodeHelper\BarcodeHelper;
use ThalassaWeb\BarcodeHelper\EnumBarcode;
$code93Bin = BarcodeHelper::getBarcode(EnumBarcode::CODE_93_BIN);
$code93Font = BarcodeHelper::getBarcode(EnumBarcode::CODE_93_FONT);
// Encodage à destination d'une police de caractères
echo $code93Font->encoder("/PT/12AZERTY34");
*/PT/12AZERTY34TM*|
// Encodage à destination de la police générique
echo $code93Bin->encoder('/PT/12AZERTY34');
101011110101101110100010110110100110101101110101001000101000100110101000100111010110010010110110010110100110100110110101000010100101000110100110101001100101011110100000000
// Obtention de la clé de contrôle
echo $code93Bin->getChecksum('/PT/12AZERTY34');
TM
// Validation des données
echo $code93Bin->valider('/PT/12AZERTY34');
1
// Le code 93 n'autorise pas les soulignées «_»
echo $code93Bin->valider('/PT/12AZE_RTY34');
0
Des polices de caractères ont été générées afin de simplifier l'utilisation.
Il y a une police générique (GenericBarcode) utilisable lorsque le code à barres à été encodé sous format binaire.
Il y a également des polices spécifiques par symbologie (TIW_Code93, TIW_EAN13) utilisables lorsque le code à barres a été encodé sous forme de chaîne.
La police encode les 47 caractères valides du Code93 plus un caractère Start/Stop et un caractère de terminaison.
Le Start/Stop est représenté par le caractère «asterisk» (*).
Le caractère de terminaison est représenté par le caractère «pipe» (|).
Le présent helper est configuré pour fonctionner avec cette police.
echo BarcodeHelper::getBarcode(EnumBarcode::CODE_93_FONT)->encoder("/PT/12AZE_RTY34");
La police encode les 10 chiffres dans les 3 subsets utilisés par l'EAN13 plus un caractère Start/Stop et un caractère de séparation.
Le Start/Stop est représenté par le caractère «asterisk» (*).
Le caractère de séparation est représenté par le caractère «moins» (-).
Le présent helper est configuré pour fonctionner avec cette police.
echo BarcodeHelper::getBarcode(EnumBarcode::EAN_13_FONT)->encoder("123456789012");
La police encode les 103 valeurs utilisées par le code 128 plus trois caractères Start (1 par subset) et un caractère Stop.
Les caractères Start contiennent une zone de silence en début équivalent à un espace vide de 10 barres.
Le caractère Stop contient une zone de silence à la fin équivalent à un espace vide de 10 barres.
La table de composition suivante a été utilisée : http://www.gomaro.ch/Specifications/code128.htm.
Pour ne pas avoir de problèmes d'affichage, seuls des caractères affichables ont été encodés.
Les valeurs (de la table de composition) allant de 0 à 94 (inclus) ont été augmentée de 32 afin d'utiliser les codes ASCII de 32 à 126.
À partir de 95, les caractères utilisés sont les suivants :
- ¡ (95)
- ¢ (96)
- £ (97)
- ¤ (98)
- ¥ (99)
- ¦ (100)
- § (101)
- ¨ (102)
- © (103 - Début A)
- ª (104 - Début B)
- « (105 - Début C)
- ¬ (106 - Fin)
Le présent helper est configuré pour fonctionner avec cette police.
echo BarcodeHelper::getBarcode(EnumBarcode::CODE_128_FONT)->encoder("/PT/12AZE_RTY34");
Cette police n'encode que les caractères «0» et «1».
«0» représente un espace et «1» une barre.
Pour obtenir le résultat sous forme de «0» et de «1», il suffit d'utiliser la classe de cette manière :
echo BarcodeHelper::getBarcode(EnumBarcode::EAN_13_BIN)->encoder("123456789012");
echo BarcodeHelper::getBarcode(EnumBarcode::CODE_93_BIN)->encoder("/PT/12AZERTY34");
echo BarcodeHelper::getBarcode(EnumBarcode::CODE_128_BIN)->encoder("/PT/12AZE_RTY34");