leeroy/barcode-generator

一个简单易用、无冗余的PHP条码生成器。可以从最常用的1D条码标准创建SVG、PNG、JPG和HTML图像。picqer/php-barcode-generator的分支

v2.2.5 2023-02-15 16:48 UTC

This package is auto-updated.

Last update: 2024-09-15 20:10:26 UTC


README

Build Status Github Actions Total Downloads

这是一个简单易用、无冗余、框架无关的PHP条码生成器。

它可以从最常用的1D条码标准创建SVG、PNG、JPG和HTML图像。

代码库基于Nicola Asuni的TCPDF条码生成器(https://github.com/tecnickcom/TCPDF)。因此,此代码在LGPLv3下许可。

不支持...

  • 不支持任何二维条码,如QR码。
  • 我们只支持SVG格式的条码下的值。

安装

通过composer安装

composer require leeroy/barcode-generator

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

用法

初始化条码生成器以输出您想要的内容,然后根据需要多次调用 ->getBarcode() 例程。

<?php
require 'vendor/autoload.php';

// This will output the barcode as SVG with the Text under the code (last argument if true = add text)
$generator = new Picqer\Barcode\BarcodeGeneratorSVG();
return $generator->getBarcode('ABC123456789', $generator::TYPE_CODE_128, 2, 110, 'black', true);

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_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图像,您需要安装ImagickGD库。如果已安装Imagick,则此包将使用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));