thalassa-web/barcode-helper

用于生成/验证条形码的助手

2.0.1 2019-02-07 08:53 UTC

This package is auto-updated.

Last update: 2024-09-22 02:56:28 UTC


README

用于生成/验证条形码的助手。

安装

composer require thalassa-web/barcode-helper

支持的模式列表

  • Code 93
    • 字体格式 (EnumBarcode::CODE_93_FONT)
    • 二进制格式 (EnumBarcode::CODE_93_BIN)
  • EAN 13
    • 字体格式 (EnumBarcode::EAN_13_FONT)
    • 二进制格式 (EnumBarcode::EAN_13_BIN)
  • Code 128
    • 字体格式 (EnumBarcode::CODE_128_FONT)
    • 二进制格式 (EnumBarcode::CODE_128_BIN)

使用方法

use ThalassaWeb\BarcodeHelper\BarcodeHelper;
use ThalassaWeb\BarcodeHelper\EnumBarcode;

$code93Bin = BarcodeHelper::getBarcode(EnumBarcode::CODE_93_BIN);
$code93Font = BarcodeHelper::getBarcode(EnumBarcode::CODE_93_FONT);

// Encodage à destination d'une police de caractères
echo $code93Font->encoder("/PT/12AZERTY34");

*/PT/12AZERTY34TM*|

// Encodage à destination de la police générique
echo $code93Bin->encoder('/PT/12AZERTY34');

101011110101101110100010110110100110101101110101001000101000100110101000100111010110010010110110010110100110100110110101000010100101000110100110101001100101011110100000000

// Obtention de la clé de contrôle
echo $code93Bin->getChecksum('/PT/12AZERTY34');

TM

// Validation des données
echo $code93Bin->valider('/PT/12AZERTY34');

1

// Le code 93 n'autorise pas les soulignées «_»
echo $code93Bin->valider('/PT/12AZE_RTY34');

0

字体信息

已生成字体以简化使用。
有一个通用字体(GenericBarcode),当条形码以二进制格式编码时可以使用。
也有针对特定符号的字体(TIW_Code93, TIW_EAN13),当条形码以字符串形式编码时可以使用。

TIW_Code93

该字体编码了Code93的有效47个字符,加上起始/停止字符和一个终止字符。
起始/停止由字符“星号”(*)表示。
终止字符由字符“竖线”(|)表示。
当前助手配置为使用此字体。

echo BarcodeHelper::getBarcode(EnumBarcode::CODE_93_FONT)->encoder("/PT/12AZE_RTY34"); 

TIW_EAN13

该字体编码了EAN13使用的3个子集中10个数字,加上起始/停止字符和一个分隔符。
起始/停止由字符“星号”(*)表示。
分隔符由字符“减号”(-)表示。
当前助手配置为使用此字体。

echo BarcodeHelper::getBarcode(EnumBarcode::EAN_13_FONT)->encoder("123456789012"); 

TIW_CODE128

该字体编码了Code128使用的103个值,加上3个起始字符(每个子集一个)和一个停止字符。
起始字符包含一个相当于10个空白的静默区域。
停止字符包含一个相当于10个空白的静默区域。
使用了以下组合表:http://www.gomaro.ch/Specifications/code128.htm.
为了防止显示问题,只编码了可显示的字符。
组合表中的值(从0到94,包括)增加了32,以便使用32到126的ASCII码。
从95开始的字符使用以下字符

  • ¡ (95)
  • ¢ (96)
  • £ (97)
  • ¤ (98)
  • ¥ (99)
  • ¦ (100)
  • § (101)
  • ¨ (102)
  • © (103 - A的开始)
  • ª (104 - B的开始)
  • « (105 - C的开始)
  • ¬ (106 - 结束)

当前助手配置为使用此字体。

echo BarcodeHelper::getBarcode(EnumBarcode::CODE_128_FONT)->encoder("/PT/12AZE_RTY34"); 

GenericBarcode

该字体只编码“0”和“1”字符。
“0”表示一个空白,“1”表示一个条。
要获取“0”和“1”的结果,只需按如下方式使用该类即可

echo BarcodeHelper::getBarcode(EnumBarcode::EAN_13_BIN)->encoder("123456789012"); 
echo BarcodeHelper::getBarcode(EnumBarcode::CODE_93_BIN)->encoder("/PT/12AZERTY34");
echo BarcodeHelper::getBarcode(EnumBarcode::CODE_128_BIN)->encoder("/PT/12AZE_RTY34");