1、去官网下载类库 “https://www.barcodebakery.com/en/download”,选择自己的版本下载
2、解压放到“extend目录下”
3、我们可以直接使用官方给的例子(test_1D.php),复制到自己需要用的地方,然后根据自己的需求稍加改动即可,需要注意的是,加载第三方类库的路径需要改一下。
4-注意代码:require_once(
c
l
a
s
s
d
i
r
.
′
B
C
G
c
o
d
e
128.
b
a
r
c
o
d
e
.
p
h
p
′
)
;
/
/
条
码
类
型
class_dir.'BCGcode128.barcode.php'); //条码类型
classdir.′BCGcode128.barcode.php′);//条码类型code = new BCGcode128();//条码类型以上两行代码:是生成对应的条码类似 ,根据实际的要求进行处理
生成条形码的php代码`` public function txm($order_number){
require('../extend/barcode/example/vendor/autoload.php');
require('../extend/barcode/packages/barcode-common/src/BCGColor.php');
require('../extend/barcode/packages/barcode-common/src/BCGFontFile.php');
require('../extend/barcode/packages/barcode-1d/src/BCGcode128.php');
require('../extend/barcode/packages/barcode-common/src/BCGDrawing.php');
$colorBlack = new BCGColor(0, 0, 0);
$colorWhite = new BCGColor(255, 255, 255);
// $font = new BCGFontFile( '../extend/barcode/example/font/Arial.ttf', 18);
$drawException = null;
$barcode = null;
try {
$code = new BCGcode128();
$code->setScale(2); // 条形码的厚度
$code->setThickness(30); // Thickness
$code->setForegroundColor($colorBlack); // 条形码颜色
$code->setBackgroundColor($colorWhite); // 空白间隙颜色
//$code->setFont($font); //加载字体大小
$code->setStart(null);
$code->setTilde(true);
$code->parse($order_number); // Text
$barcode = $code;
} catch (Exception $exception) {
$drawException = $exception;
}
$drawing = new BCGDrawing($barcode, $colorWhite);
if($drawException) {
$drawing->drawException($drawException);
}else{
$drawing->setBarcode($code);
}
// 生成PNG格式的图片
header('Content-Type: image/png');
header('Content-Disposition: inline; filename="barcode.png"');//自动下载
$drawing->finish(BCGDrawing::IMG_FORMAT_PNG);
需要注意的是:一定要根据自己下的条形码版本来选择对应的PHP版本,最新的是需要7.4版本以上才可以;条形码在视图的引入直接如下,因为我在table方法里面调用的条形码所以需要一个参数去做条件不让他在视图里面显示。否则会出现头部乱码的情况。
1.在tp6中已经移出了import()和vendor();所以引入第三方类库只能使用include和require了。
2. Failed opening required ‘D:\phpstudy_pro\WWW\tp\public/extend/example/vendor/autoload’ (include_path=’.;C:\php\pear’)报错的解决办法:原因是路径不对,所以我们应该使用绝对路径或者使用./这样的开头;也有可能是因为文件夹中含有中文的原因;也有可能是文件路径不对,配置的路径不对造成的。
3. unexpected ‘int’ (T_STRING), expecting function (T_FUNCTION) or const (T_CONST)原因:int是强制将该变量转换成数值类型。如果需要用 private int $h;php版本需要7.4版本以上才不会报错
目前有两类变量可以声明类型: 形参,返回值,支持的类型有整形,浮点型,字符串型,布尔型,详情见https://www.cnblogs.com/fengyumeng/p/8032834.html。php是一种弱类型语言,__construct(?BCGBarcode $barcode,)代表的是传入的参数必须是BCGBarcode (或其子类)的对象;需要注意得是,即使使用了类型约束,如果使用NULL作为参数的默认值,那么在调用函数的时候依然可以使用NULL作为实参。
public function setBarcode(?BCGBarcode $barcode): void,后面标记的是函数的返回类型,如果是void就是不需要返回值,没有返回值;void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void真正发挥的作用在于:1) 对函数返回的限定;(2) 对函数参数的限定。详情见https://www.php.cn/php-ercikaifa-344329.html。