Skip to content

Latest commit

 

History

History
254 lines (197 loc) · 10.5 KB

README_fr.md

File metadata and controls

254 lines (197 loc) · 10.5 KB

SGKBarcodeBundle

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

SGKBarcodeBundle est un Symfony2 Bundle pour l’objet de générer tous les types de code-barres ! Ce document README ont aussi une version Anglaise (English) et une version Chinoise (中文).

Caractéristiques:

  1. Capable de générer 3 types de codes-barres bidimensionnels (2D) et 30 types de codes-barres unidimensionnels (1D)
  2. Trois formats de sortie : HTML, PNG and SVG canvas
  3. Twig intégration: vous pouvez directement utiliser une Twig fonction dans le Template pour générer les codes-barres
  4. Ce Bundle est un portage depuis le Laravel project: dinesh/barcode

SGKBarcodeBundle

Installation

Ajoutez SGKBarcodeBundle via exécuter le command:

// Symfony version < 2.7
$ php composer.phar require sgk/barcode-bundle:~1.0

// Symfony version >= 2.7
$ php composer.phar require sgk/barcode-bundle:~2.0

Ou ajoutez la dépendance de SGKBarcodeBundle à votre fichier composer.json, puis mettez à jour les bibliothèques vendor : php composer.phar update

// Symfony version < 2.7
"require": {
        "sgk/barcode-bundle": "~1.0"
    }

// Symfony version >= 2.7
"require": {
        "sgk/barcode-bundle": "~2.0"
    }

Composer téléchargera automatiquement tous les fichiers requis, et les installera pour vous sous le répertoire vendor/sgk.

Ensuite, comme pour tout autre bundle, incluez dans votre classe Kernel:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new SGK\BarcodeBundle\SGKBarcodeBundle(),
    );
}

Paramètres de génération

Vous avez 5 paramètres (options) à choisir pour la génération d’un code-barres.

option type requis valeur possible description
code string obligatoire ce que vous voulez encoder
type string obligatoire Types disponible type de code-barre
format string obligatoire html, svg, png format de sortie
width integer optionnel largeur de unit
height integer optionnel hauteur de unit
color string (html, svg) / array (png) optionnel HTML Color Names / array(R, G, B) couleur

Valeur par défaut de width et height pour les codes-barres 2D sont 5, 5, pour les codes-barres 1D sont 2, 30. Valeur par défaut de couleur pour les fomarts html et svg est black, pour png est array(0, 0, 0)

Utilisation par service

Ce bundle crée un service sgk_barcode.generator dans le Conteneur, cela vous permettez de l’utiliser pour générer le code-barres d’une façon très simple.

  • outpout html
$options = array(
    'code'   => 'string to encode',
    'type'   => 'c128',
    'format' => 'html',
);

$barcode =
    $this->get('sgk_barcode.generator')->generate($options);
    
return new Response($barcode);
  • outpout svg
$options = array(
    'code'   => 'string to encode',
    'type'   => 'qrcode',
    'format' => 'svg',
    'width'  => 10,
    'height' => 10,
    'color'  => 'green',
);

$barcode =
    $this->get('sgk_barcode.generator')->generate($options);
    
return new Response($barcode);
  • outpout png
$options = array(
    'code'   => 'string to encode',
    'type'   => 'datamatrix',
    'format' => 'png',
    'width'  => 10,
    'height' => 10,
    'color'  => array(127, 127, 127),
);

$barcode =
    $this->get('sgk_barcode.generator')->generate($options);

return new Response('<img src="data:image/png;base64,'.$barcode.'" />');

Si vous choisissez le format png, le générateur retournera le donnée based64 de png fichier, vous pouvez obtenir le donnée original via base64_decode($barcode). Ici on prend Data URI scheme pour directement afficher le png image sur webpage.

Utilisation dans le Twig Template

Ce bundle crée une fonction de Twig barcode que vous pouvez l’utiliser directement dans le Twig Template.

barcode prend les mêmes paramètres (options), la seule chose différente est que vous avez besoin de passer un Twig tableau (qui vraiment ressemble à Json, mais il n’est pas) dans la fonction.

  • display html
{{ barcode({code: 'string to encode', type: 'c128', format: 'html'}) }}
  • display svg
{{ barcode({code: 'string to encode', type: 'qrcode', format: 'svg', width: 10, height: 10, color: 'green'}) }}
  • display png
<img src="data:image/png;base64,
{{ barcode({code: 'string to encode', type: 'datamatrix', format: 'png', width: 10, height: 10, color: [127, 127, 127]}) }}
" />

Utilisation sans service

use SGK\BarcodeBundle\Generator\Generator;
//...
$options = array(
    'code'   => 'string to encode',
    'type'   => 'qrcode',
    'format' => 'html',
);

$generator = new Generator();
$barcode = $generator->generate($options);

return new Response($barcode);

Enregistrer les codes-barres dans les fichiers

Comme vous avez vu, ce Bundle n’enregistre rien sur vos ordinateurs, mais si vous voulez les enregistrer, il n’y aura pas de problème !

  • save as html
$savePath = '/tmp/';
$fileName = 'sample.html';

file_put_contents($savePath.$fileName, $barcode);
  • save as svg
$savePath = '/tmp/';
$fileName = 'sample.svg';

file_put_contents($savePath.$fileName, $barcode);
  • save as png
$savePath = '/tmp/';
$fileName = 'sample.png';

file_put_contents($savePath.$fileName, base64_decode($barcode));

Type de code-barres disponible

Jetez un coup d'œil à Wikipedia page pour savoir quel type vous devez choisir.

2d barcodes

type Name Example(encode 123456)
qrcode QR code
pdf417 PDF417
datamatrix Data Matrix

1d barcodes

type Symbology Example(encode 123456)
c39 Code 39
c39+ Code 39 CHECK_DIGIT
c39e Code 39 EXTENDED
c39e+ Code 39 EXTENDED CHECK_DIGIT
c93 Code 93
s25 Standard 2 of 5
s25+ Standard 2 of 5 CHECK_DIGIT
i25 Interleaved 2 of 5
i25+ Interleaved 2 of 5 CHECK_DIGIT
c128 Code 128
c128a Code 128A
c128b Code 128B
c128c Code 128C
ean2 EAN 2
ean5 EAN 5
ean8 EAN 8
ean13 EAN 13
upca UPC-A
upce UPC-B
msi MSI
msi+ MSI CHECK_DIGIT
postnet POSTNET
planet PLANET
rms4cc RMS4CC
kix KIX-code
imb IM barcode
codabar Codabar
code11 Code 11
pharma Pharmacode
pharma2t Pharmacode Two-Track

Dépendance

Si vous avez rencontré quelque problème de dépendance, vérifierez que vous avez bien installé les deux extensions de PHP (dans phpinfo()).

  • GD et ImageMagick pour créer les PNGs sous PHP 5.3.
  • PHP bcmath extension pour générer le format Intelligent Mail barcodes (IMB)

Tests

Exécuter les tests unitaires:

$ phpunit --coverage-text