shaunluedeke / php-barcode-generator
一个易于使用、无冗余的PHP条码生成器。可从最常见的1D条码标准创建SVG、PNG、JPG和HTML图像。
dev-main
2024-08-30 08:13 UTC
Requires
- php: ^8.1
- ext-mbstring: *
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.5
Suggests
- ext-bcmath: Barcode IMB (Intelligent Mail Barcode) needs bcmath extension
- ext-gd: For JPG and PNG generators, GD or Imagick is required
- ext-imagick: For JPG and PNG generators, GD or Imagick is required
This package is auto-updated.
Last update: 2024-08-30 08:13:55 UTC
README
这是一个易于使用、无冗余、框架独立的PHP条码生成器。它使用零(!) composer依赖,只有几个文件。可能是这是Packagist上下载次数最多的PHP条码生成器的原因。 ;)
它可以从最常见的1D条码标准创建SVG、PNG、JPG和HTML图像。
代码库基于Nicola Asuni的TCPDF条码生成器。因此,此代码在LGPLv3下授权。
不支持...
- 不支持任何二维条码,如QR码。
- 我们只生成条码的'条'部分,不包括条码下面的文字。如果您想在条码下方添加文字,可以在生成此包的输出中稍后添加。
安装
通过composer安装
composer require picqer/php-barcode-generator
如果您想生成PNG或JPG图像,您还需要在系统上安装GD库或Imagick。
用法
初始化所需输出的条码生成器,然后根据需要多次调用-getBarcode()例程。
<?php require 'vendor/autoload.php'; // This will output the barcode as HTML output to display in the browser $generator = new Picqer\Barcode\BarcodeGeneratorHTML(); echo $generator->getBarcode('081231723897', $generator::TYPE_CODE_128);
getBarcode()方法接受以下参数
$barcode需要编码到条码中的字符串$type条码类型,使用类中定义的常量$widthFactor宽度基于数据的长度,使用此系数可以使条码条比默认值更宽$height条码的总像素高度$foregroundColor字符串形式的十六进制代码,或RGB颜色的数组(前景颜色)
所有参数的用法示例
<?php require 'vendor/autoload.php'; $redColor = [255, 0, 0]; $generator = new Picqer\Barcode\BarcodeGeneratorPNG(); file_put_contents('barcode.png', $generator->getBarcode('081231723897', $generator::TYPE_CODE_128, 3, 50, $redColor));
图像类型
$generatorSVG = new Picqer\Barcode\BarcodeGeneratorSVG(); // Vector based SVG $generatorPNG = new Picqer\Barcode\BarcodeGeneratorPNG(); // Pixel based PNG $generatorJPG = new Picqer\Barcode\BarcodeGeneratorJPG(); // Pixel based JPG $generatorHTML = new Picqer\Barcode\BarcodeGeneratorHTML(); // Pixel based HTML $generatorHTML = new Picqer\Barcode\BarcodeGeneratorDynamicHTML(); // Vector based HTML
接受的条码类型
这些条码类型受支持。所有类型都支持不同的字符集或具有强制长度。请参阅维基百科以了解每种类型的受支持字符和长度。
最常用的类型是TYPE_CODE_128和TYPE_CODE_39。由于最佳扫描仪支持、可变长度和最多支持的字符。
- TYPE_CODE_32(意大利药品代码'MINSAN')
- 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_ITF14(也称为GTIN-14)
- 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
关于PNG和JPG图像的说明
如果您想使用 PNG 或 JPG 图像,您需要安装 Imagick 或 GD 库。此包将使用已安装的 Imagick,如果没有安装,则回退到 GD。如果您已安装两者,但想要特定的方法,可以使用 $generator->useGd() 或 $generator->useImagick() 强制使用您的偏好。
示例
HTML 中的嵌入式 PNG 图像
$generator = new Picqer\Barcode\BarcodeGeneratorPNG(); echo '<img src="data:image/png;base64,' . base64_encode($generator->getBarcode('081231723897', $generator::TYPE_CODE_128)) . '">';
将 JPG 条码保存到磁盘
$generator = new Picqer\Barcode\BarcodeGeneratorJPG(); file_put_contents('barcode.jpg', $generator->getBarcode('081231723897', $generator::TYPE_CODABAR));
单行 SVG 输出到磁盘
file_put_contents('barcode.svg', (new Picqer\Barcode\BarcodeGeneratorSVG())->getBarcode('6825ME601', Picqer\Barcode\BarcodeGeneratorSVG::TYPE_KIX));