tomasvotruba / barcode-bundle
为您的 Symfony 项目提供条形码渲染
1.5.0
2024-01-05 12:53 UTC
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
此包提供使用我们的条形码生成器基础库 https://github.com/paterik/BGBarcodeGenerator 的条形码渲染功能,支持基于 ImageMagick/GDLib 的图像渲染、svg 和 html 表格绘制输出,以下 1D/2D 条形码:
1D 条形码
- C39 : CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9.
- C39+ : 带校验和的 CODE 39
- C39E : 扩展的 CODE 39
- C39E+ : 扩展的 CODE 39 + 校验和
- C93 : CODE 93 - USS-93
- S25 : 标准的 2 of 5
- S25+ : 标准的 2 of 5 + 校验和
- I25 : 交错 2 of 5
- I25+ : 交错 2 of 5 + 校验和
- C128 : CODE 128
- C128A : CODE 128 A
- C128B : CODE 128 B
- C128C : CODE 128 C
- EAN2 : 基于 UPC 的 2 位数扩展
- EAN5 : 基于 UPC 的 5 位数扩展
- EAN8 : EAN 8
- EAN13 : EAN 13
- UPCA : UPC-A
- UPCE : UPC-E
- MSI : MSI (Plessey 代码的变体)
- MSI+ : MSI + 校验和 (模 11)
- POSTNET : POSTNET
- PLANET : PLANET
- RMS4CC : RMS4CC (皇家邮政 4 状态客户代码) - CBC (客户条形码)
- KIX : KIX (客户索引 - 客户索引)
- IMB: 智能邮件条形码 - Onecode - USPS-B-3200
- CODABAR : CODABAR
- CODE11 : CODE 11
- PHARMA : PHARMACODE
- PHARMA2T : 双轨 PHARMACODE
2D 条形码
- 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
- QRCODE, L : 低错误纠正 QRcode
- QRCODE, M : 中等错误纠正 QRcode
- QRCODE, Q : 较好错误纠正 QRcode
- QRCODE, H : 最佳错误纠正 QR-CODE
- QR, RAW : 原始模式 - 以逗号分隔的数组行列表
- QR, RAW2 : 原始模式 - 数组行被方括号包围
安装
composer require tomasvotruba/barcode-bundle
将此包添加到您的应用程序内核
// app/AppKernel.php public function registerBundles() { return [ // ... new \TomasVotruba\BarcodeBundle\BarcodeBundle(), ]; }
用法
1 - 如果您想使用两种代码类型(1D/2D),请将以下行添加到您的控制器中
2 - 设置缓存路径(对于基于图像的条形码渲染),调用图像或 html 渲染器,包括您的代码和条形码类型
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 - 通过解析 $bcPathAbs(渲染条形码图像的绝对路径)或使用此简单辅助方法获取图像
/** * 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 - 将公共路径发送到您的 symfony 视图,并将结果放入您的图像 src 路径,或者只需渲染出基于表格的替代条形码 html 结构
$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 }} // ...