Bootstrap

PHP生成条形码的简单使用

一,在php中我们可以使用php-barcode-generator插件来生成条形码,php-barcode-generator插件github地址:https://github.com/picqer/php-barcode-generator

composer require picqer/php-barcode-generator

二,使用很简单,需要先引入文件

//引入
use Picqer\Barcode\BarcodeGeneratorPNG;
require_once('vendor/autoload.php');

    //使用
    public function Barcode($code = '', $type = BarcodeGeneratorPNG::TYPE_CODE_128)
    {
        
        header('Content-Type: image/png');

        if(empty($code)){
            $result['msg'] = '条形码数据不能为空';
        }
 
        //保存位置:相对路径
        $relative_path = 'public/barcode/' . date('Ymd') . '/';
        //保存位置:绝对路径
        $absolute_path = ROOT_PATH . $relative_path;

        if(!is_dir($absolute_path)){
            $res = @mkdir($absolute_path,0777,true);
            if(!$res){
                $result = '创建目录失败:'. $code;
            }
        }
 
        //条形码文件
        // public/barcode/20230407/c.png"
        $relative_url = $relative_path . $code . '.png'; 

        // D:/phpEnv/www/storeManager/public/barcode/20230407/c.png
        $absolute_url = $absolute_path . $code . '.png'; 

        if(file_exists($absolute_url)){
            $result['msg']    = '之前已经生成过:'. $code;
            $result['url']    = $relative_url;
            return $result;
        }
 
        //生成图片数据
        $generator = new BarcodeGeneratorPNG; //PNG格式的图片
        $data = $generator->getBarcode(
            $code,                     //条形码数据
            $type,                     //条形码的类型,使用在类中定义的常量
            3,                         //条形码的宽度
            50,                        //条形码高度
            [0, 0, 0]                  //条形码的颜色
        );
        //保存进png文件
        if(file_put_contents($absolute_path . $code . '.png', $data)){ 
            $result['url'] = $relative_url;
            return $result;
        }else {
            $result['msg'] = '保存文件失败:'. $code;
            return $result;
    }
;