yangyao / php-barcode

PHP 中一个易于使用、不臃肿的条形码生成器。可从最常见的 1D 条形码标准生成 SVG、PNG、JPG 和 HTML 图像。

dev-master 2019-04-03 06:19 UTC

This package is auto-updated.

Last update: 2024-09-17 16:09:41 UTC


README

此仓库是从 https://github.com/picqer/php-barcode-generator 分叉而来,唯一的区别是增加了标签,并将及时与原始仓库保持同步。

这是一个易于使用、不臃肿、独立于框架的 PHP 条形码生成器。

它从最常见的 1D 条形码标准生成 SVG、PNG、JPG 和 HTML 图像。

代码库主要来自 Nicola Asuni 的 TCPDF 条形码生成器。因此,此代码在 LGPLv3 许可下提供。它仍然有点混乱,但我会在将来对其进行清理。我不期望在清理过程中修改该类的接口。

安装

通过 composer 安装

composer require yangyao/php-barcode

如果您想生成 PNG 或 JPG 图像,您还需要在您的系统上安装 GD 库或 Imagick。

用法

初始化您想要的输出格式的条形码生成器,然后根据需要多次调用 ->getBarcode() 程序。

$generator = new Picqer\Barcode\BarcodeGeneratorHTML();
echo $generator->getBarcode('081231723897', $generator::TYPE_CODE_1282,80,[0,0,0],new \Picqer\Barcode\BarcodeLabel('081231723897'));

->getBarcode() 程序接受以下内容:

  • $code 条形码数据
  • $type 条形码类型,使用类中定义的常量
  • $widthFactor 宽度基于数据的长度,使用此因子可以使条形码条比默认值更宽
  • $totalHeight 条形码的总高度
  • $color 前景颜色的十六进制代码
  • $label 条形码标签实例

条形码标签接受以下内容:

  • $text 标签文本
  • $textAlign 标签文本的对齐方式
  • $fontSize 标签文本的字体大小
  • $color 标签文本的颜色
  • $marginTop 标签文本的像素顶部边距
  • $marginBottom 标签文本的像素底部边距
  • $marginLeft 标签文本的像素左边距
  • $marginRight 标签文本的像素右边距

图像类型

$generatorSVG = new Picqer\Barcode\BarcodeGeneratorSVG();
$generatorPNG = new Picqer\Barcode\BarcodeGeneratorPNG();
$generatorJPG = new Picqer\Barcode\BarcodeGeneratorJPG();
$generatorHTML = new Picqer\Barcode\BarcodeGeneratorHTML();

接受的类型

  • TYPE_CODE_39
  • TYPE_CODE_39_CHECKSUM
  • TYPE_CODE_39E
  • TYPE_CODE_39E_CHECKSUM
  • TYPE_CODE_93
  • TYPE_STANDARD_2_5
  • TYPE_STANDARD_2_5_CHECKSUM
  • TYPE_INTERLEAVED_2_5
  • TYPE_INTERLEAVED_2_5_CHECKSUM
  • TYPE_CODE_128
  • TYPE_CODE_128_A
  • TYPE_CODE_128_B
  • TYPE_CODE_128_C
  • TYPE_EAN_2
  • TYPE_EAN_5
  • TYPE_EAN_8
  • TYPE_EAN_13
  • TYPE_UPC_A
  • TYPE_UPC_E
  • TYPE_MSI
  • TYPE_MSI_CHECKSUM
  • TYPE_POSTNET
  • TYPE_PLANET
  • TYPE_RMS4CC
  • TYPE_KIX
  • TYPE_IMB
  • TYPE_CODABAR
  • TYPE_CODE_11
  • TYPE_PHARMA_CODE
  • TYPE_PHARMA_CODE_TWO_TRACKS

示例

HTML 中的嵌入 PNG 图像

$generator = new \Picqer\Barcode\BarcodeGeneratorPNG();
echo '<img src="data:image/png;base64,' . base64_encode($generator->getBarcode('081231723897', $generator::TYPE_CODE_128,2,80,'black',new \Picqer\Barcode\BarcodeLabel('081231723897'))) . '">';