<?php
namespace app\common\logic\utils;
/**
* 生成条形码
* 引用插件类库:composer require picqer/php-barcode-generator
* github:https://github.com/picqer/php-barcode-generator
* Class Barcode
* @package app\common\logic\utils
*/
class Barcode{
/**
* 当前方法只生成png格式的条形码图片
* @param string $code
* @return array
* @throws \Picqer\Barcode\Exceptions\BarcodeException
*/
static public function GetBarcodePng($code = ''){
$result = ['status' => false, 'msg' => '','url' => ''];
if(empty($code)){
$result['msg'] = '条形码数据不能为空';
return $result;
}
//保存位置:相对路径
$relative_path = '/upload/barcode/';
//保存位置:绝对路径
$absolute_path = ROOT_PATH.'public'.$relative_path;
if(!is_dir($absolute_path)){
$res = @mkdir($absolute_path,0755,true);
if(!$res){
$result['msg'] = '创建目录失败:'.$code;
return $result;
}
}
//条形码文件
$relative_url = $relative_path.$code.'.png';// /upload/barcode/123.png
$absolute_url = $absolute_path.$code.'.png';// D:/shop/public/upload/barcode/123.png
if(file_exists($absolute_url)){
$result['status'] = true;
$result['msg'] = '之前已经生成过:'.$code;
$result['url'] = $relative_url;
return $result;
}
//生成图片数据
$generator = new \Picqer\Barcode\BarcodeGeneratorPNG();//还有其他文件可以生成其他格式的图片
$data = $generator->getBarcode(
$code, //条形码数据
$generator::TYPE_CODE_128, //条形码的类型,使用在类中定义的常量,具体参数可参考github
3, //条形码的宽度
50, //条形码高度
[0, 0, 0] //条形码的颜色
);
//保存进png文件
if(!file_put_contents($absolute_path.$code.'.png', $data)){
$result['msg'] = '保存文件失败:'.$code;
return $result;
}
$result['status'] = true;
$result['url'] = $relative_url;
return $result;
}
}
barcode--php生成条形码
于 2020-05-20 11:56:40 首次发布