tomasvotruba / barcode-bundle
Barcode rendering for your Symfony project
Installs: 32 202
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 1
Forks: 17
Type:symfony-bundle
Requires
- php: ^8.0
- ext-bcmath: *
- symfony/dependency-injection: ^6.0 || ^7.0
- symfony/http-kernel: ^6.0 || ^7.0
Requires (Dev)
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.6 || ^10.5
- rector/rector: ^0.18.13
- symfony/framework-bundle: ^6.0 || ^7.0
- symplify/easy-coding-standard: ^12.0
- symplify/phpstan-extensions: ^11.4
README
This Bundle provide barcode rendering using our barcode generator base library https://github.com/paterik/BGBarcodeGenerator supports ImageMagick/GDLib based image rendering, svg and html table drawn output of the following 1D/2D bar codes:
1d barcodes
- C39 : CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9.
- C39+ : CODE 39 with checksum
- C39E : CODE 39 EXTENDED
- C39E+ : CODE 39 EXTENDED + CHECKSUM
- C93 : CODE 93 - USS-93
- S25 : Standard 2 of 5
- S25+ : Standard 2 of 5 + CHECKSUM
- I25 : Interleaved 2 of 5
- I25+ : Interleaved 2 of 5 + CHECKSUM
- C128 : CODE 128
- C128A : CODE 128 A
- C128B : CODE 128 B
- C128C : CODE 128 C
- EAN2 : 2-Digits UPC-Based Extention
- EAN5 : 5-Digits UPC-Based Extention
- EAN8 : EAN 8
- EAN13 : EAN 13
- UPCA : UPC-A
- UPCE : UPC-E
- MSI : MSI (Variation of Plessey code)
- MSI+ : MSI + CHECKSUM (modulo 11)
- POSTNET : POSTNET
- PLANET : PLANET
- RMS4CC : RMS4CC (Royal Mail 4-state Customer Code) - CBC (Customer Bar Code)
- KIX : KIX (Klant index - Customer index)
- IMB: Intelligent Mail Barcode - Onecode - USPS-B-3200
- CODABAR : CODABAR
- CODE11 : CODE 11
- PHARMA : PHARMACODE
- PHARMA2T : PHARMACODE TWO-TRACKS
2d barcodes
- DATAMATRIX : Datamatrix (ISO/IEC 16022)
- PDF417 : PDF417 (ISO/IEC 15438:2006) / a,e,t,s,f,o0,o1,o2,o3,o4,o5,o6
- QRCODE : QRcode Low error correction
- QRCODE, L : QRcode Low error correction
- QRCODE, M : QRcode Medium error correction
- QRCODE, Q : QRcode Better error correction
- QRCODE, H : QR-CODE Best error correction
- QR, RAW : raw mode - comma-separad list of array rows
- QR, RAW2 : raw mode - array rows are surrounded by square parenthesis.
Installation
composer require tomasvotruba/barcode-bundle
Add this bundle to your application's kernel:
// app/AppKernel.php public function registerBundles() { return [ // ... new \TomasVotruba\BarcodeBundle\BarcodeBundle(), ]; }
Usage
1 - Add the following lines in your controller if you want to use both code types (1d/2d) :
2 - set the cache path (for image based barcode rendering) call the image- or html renderer including your code and barcode type :
use TomasVotruba\BarcodeBundle\Base1DBarcode; $myBarcode = new Base1DBarcode(); $myBarcode->savePath = '/my/temp/media/path'; $bcPathAbs = $myBarcode->getBarcodePNGPath('501234567890', 'EAN13', 1.75, 45); $bcHTMLRaw = $myBarcode->getBarcodeHTML('501234567890', 'EAN13', 1.75, 45);
3 - fetch image by parse $bcPathAbs (absolute path to rendered barcode image) or using this a simple helper method
/** * simple cache path returning method (sample cache path: "upload/barcode/cache" ) * * @param bool $public * * @return string * */ protected function getBarcodeCachePath($public = false) { return (!$public) ? $this->get('kernel')->getRootDir(). '/../web/upload/barcode/cache' : '/upload/barcode/cache'; }
4 - send public path to your symfony view and put result into your image src path or just render out the alternative table based barcode html structure
$this->render('AcmeDemoBundle:Demo:barcode.html.twig', array( 'barcodePathAndFile' => $this->getBarcodeCachePath($bcPathAbs), 'barcodeHTML' => $bcHTMLRaw, )); // AcmeDemoBundle:Demo:barcode.html.twig // ... <!-- barcode as image --> <img src="{{ barcodePathAndFile }}" alt="barcode" title="my barcode image"> // ... <!-- barcode as table --> {{ barcodeHTML|raw }} // ...