brewerwall/php-barcode-generator

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

1.0.0 2019-09-20 20:28 UTC

This package is auto-updated.

Last update: 2024-09-04 12:26:36 UTC


README

这是一个易于使用、无冗余、框架独立的PHP条码生成器。此版本已更新以遵循PSR-4并支持PHP 7.1+。

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

代码库大部分来自Nicola Asuni的TCPDF条码生成器TCPDF barcode generator。因此,代码在LGPLv3下授权。它仍然有些混乱,但我将来会整理它。我不期望在清理过程中这个类的接口会有所改变。

这个代码库,也是基于TCPDF barcode generator扩展的,大部分是从Picqer barcode generator直接复制的。更新为符合php 7.1+。

安装

通过composer安装

composer require brewerwall/php-barcode-generator

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

使用IMB条码需要安装bcmath扩展。

用法

创建一个新的条码生成器。这将声明代码、条码类型以及代码将渲染的格式。

$generator = new BarcodeGenerator(BarcodeType::TYPE_CODE_128, BarcodeRender::RENDER_JPG);

// Generate our code
$generated = $generator->generate('012345678');

// Generates the same code with style updates
$generated = $generator->generate('012345678', 4, 50, '#FFCC33');

$generator->generate()方法接受以下参数

  • $code 需要生成的条码值。
  • $widthFactor (默认: 2) 宽度基于数据的长度,使用此因子可以使条码条比默认更宽
  • $totalHeight (默认: 30) 条码的总高度
  • $color (默认: #000000) 前景颜色的十六进制代码

图像类型

use Brewerwall\Barcode\Constants\BarcodeRender;

BarcodeRender::RENDER_JPG
BarcodeRender::RENDER_PNG
BarcodeRender::RENDER_HTML
BarcodeRender::RENDER_SVG

接受的类型

use Brewerwall\Barcode\Constants\BarcodeType;

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

示例

嵌入HTML中的PNG图像

$generator = new BarcodeGenerator(BarcodeType::TYPE_CODE_128, BarcodeRender::RENDER_PNG);
echo '<img src="data:image/png;base64,' . base64_encode($generator->generate('012345678')) . '">';