bitgrave / barcode-bundle
为您的 Symfony2 应用程序提供条码渲染服务。
1.0.2
2021-06-22 22:31 UTC
Requires
- php: ^5.5 || ^5.6 || ^7.0
- symfony/dependency-injection: ^2.1 || ^3.0 || ^4.0 || ^4.1
- symfony/http-kernel: ^2.1 || ^3.0 || ^4.0 || ^5.1
Requires (Dev)
- symfony/framework-bundle: ^2.1 || ^3.0 || ^4.0 || ^4.1
This package is not auto-updated.
Last update: 2024-09-11 13:15:12 UTC
README
此捆绑包使用我们的条码生成器基础库 https://github.com/paterik/BGBarcodeGenerator 来提供条码渲染,支持基于 ImageMagick/GDLib 的图像渲染、svg 和以下 1D/2D 条码的 html 表格输出:
一维条码
- 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 (Klant index - 客户索引)
- IMB: 智能邮件条码 - Onecode - USPS-B-3200
- CODABAR : CODABAR
- CODE11 : CODE 11
- PHARMA : PHARMACODE
- PHARMA2T : 双轨 PHARMACODE
二维条码
- 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 : 原始模式 - 数组行被方括号包围
先决条件
此版本需要 Symfony 2.1
安装
1 - 在您的 composer.json 中添加以下行
针对最新的 symfony 3.n 内核/框架环境
"require": {
"bitgrave/barcode-bundle": "^1.0"
}
旧版 symfony 2.1.n 内核?版本低于 1.0.0
"require": {
"bitgrave/barcode-bundle": "0.0.9"
}
2 - 运行 composer 下载捆绑包
$ php composer.phar update bitgrave/barcode-bundle
3 - 将此捆绑包添加到您的应用程序内核
// app/AppKernel.php
public function registerBundles()
{
return array(
// ...
new BG\BarcodeBundle\BarcodeBundle(),
// ...
);
}
用法
1 - 如果您想使用两种代码类型(1D/2D),请在控制器中添加以下行
use BG\BarcodeBundle\Util\Base1DBarcode as barCode;
use BG\BarcodeBundle\Util\Base2DBarcode as matrixCode;
2 - 设置缓存路径(基于图像的条码渲染)调用图像或 html 渲染器,包括您的代码和条码类型
$myBarcode = new barCode();
$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 }}
// ...
如何贡献
要贡献更改、修复、新增功能,请打开带有您的新代码的拉取请求。请注意,如果您添加了新功能或修改了现有功能,您必须在项目的 README 文件中记录此信息(还要更新项目的 CHANGELOG 文件!)
许可
见:resources/meta/LICENSE