Code source | Barcode : Classe PHP de génération de code-barres
Mardi 19 septembre 2017
Google

Classe PHP : barcode

Version : 2.0.3
Licence : GPL / Cecill
Date : 2013-01-06
Auteur: DEMONTE Jean-Baptiste, HOUREZ Jonathan

Télécharger PHP Barcode 2.0.3

Installation de la classe PHP Barcode

Comme toute classe, il suffit d'inclure le fichier source.

  include('Barcode.php');

Elle va définir les classes :

Utilisation de la classe PHP Barcode

Pour utiliser cette classe, deux méthodes statiques sont disponibles, l'une destinée à une ressource gd et l'autre à une ressource fpdf

  Barcode::gd($res, $color, $x, $y, $angle, $type, $datas, $width = null, $height = null);
  Barcode::fpdf($res, $color, $x, $y, $angle, $type, $datas, $width = null, $height = null);

$res

ressource gd ou fpdf

L'unité de mesure dépend de la ressource : pixel pour GD et définit dans le constructeur pour fpdf.

$color

int, chaine

Descripteur de la couleur (int) pour GD et chaine hexadécimale pour fpdf (ex: "FF0000")

$x, $y

numérique

Coordonnées du centre du code-barres

$angle

numérique

Angle de rotation en degré

$datas

string

Valeur du code barres (dépendante du type de code barres)
Si le type de code barres en inclus, la présence de checksum n'est pas obligatoire, il est automatiquement recalculé

tableau

type : ean8, ean13, code11, code39, code128, codabar
memberType
codestring
type : std25, int25, code93
memberType
codestring
crcboolean
type : msi
memberType
codestring
crcboolean
tableaucrc1 : string("mod10", "mod11")
crc2 : string("mod10", "mod11")
type : datamatrix
memberType
codestring
rectboolean (defaut : false)

type (string)

$width, $height

numérique

hauteur et largeur d'un module, pour les code-barres 2D (datamatrix), $height n'est pas utilisé

<< Retour >>

Ces deux méthodes retournent un tableau contenant les dimensions du code-barres ainsi que les coordonnées de ses extrémités

array(
        'width' => w,
        'height'=> h,
        'p1' => array('x' => x, 'y' => y),
        'p2' => array('x' => x, 'y' => y),
        'p3' => array('x' => x, 'y' => y),
        'p4' => array('x' => x, 'y' => y)
      );

Exemple :

  $im     = imagecreatetruecolor(300, 300);
  $black  = ImageColorAllocate($im,0x00,0x00,0x00);
  $white  = ImageColorAllocate($im,0xff,0xff,0xff);
  imagefilledrectangle($im, 0, 0, 300, 300, $white);
  $data = Barcode::gd($im, $black, 150, 150, 0, "code128", "12345678", 2, 50);

La fonction "rotate" permet de calculer les coordonnées de rotation de point, trés utile pour centrer la "hri" (human readable interpretation)

Exemple

  $box = imagettfbbox($fontSize, 0, $font, $data['hri']);
  $len = $box[2] - $box[0];
  Barcode::rotate(-$len / 2, ($data['height'] / 2) + $fontSize + $marge, $angle, $xt, $yt);
  imagettftext($im, $fontSize, $angle, $x + $xt, $y + $yt, $blue, $font, $data['hri']);