tomasvotruba/barcode-bundle

为您的 Symfony 项目提供条形码渲染

安装量: 25,808

依赖者: 0

建议者: 0

安全性: 0

星标: 6

关注者: 1

分支: 17

类型:symfony-bundle

1.5.0 2024-01-05 12:53 UTC

This package is auto-updated.

Last update: 2024-09-05 14:58:29 UTC


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 }}
 // ...