二维码 / 条形码 生成 (ThinkPHP5.X )

最近在 Thinkphp5.x 项目中遇到需要生成 条形码 / 二维码,网上找了些资料和方法,在此做一下汇总

一、生成 二维码

1、下载并整合QrCode工具包

 composer require endroid/qrcode

2、 在控制器中引入QrCode类

3、然后 这个类库要改一下 在路径:项目路径/vendor/endroid/qrcode/src/QrCode.php 改成

 const LABEL_FONT_PATH_DEFAULT = '';

4、在控制器中调用

    //调用显示用户礼物二维码
    public function qrcode()
    {
        $name = ‘二维码’;//二维码下方显示文字
        $tel = '15123456789';//二维码附带信息
        $qrCode=new QrCode();
        $url = 'https://fai.com/details?tel='.$tel;//加http://这样扫码可以直接跳转url
        $qrCode->setText($url)
            ->setSize(100)//大小
            ->setLabelFontPath(VENDOR_PATH.'endroid\qrcode\assets\noto_sans.otf')
            ->setErrorCorrectionLevel('high')
            ->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
            ->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
            ->setLabel("$name")
            ->setLabelFontSize(10);
        header('Content-Type: '.$qrCode->getContentType());
        echo $qrCode->writeString();
        exit;
    }

5、在需要展示的地方直接访问该方法,就可以显示二维码了

二、生成条形码

类文件是放在 扩展目录extend之下的(解压后直接将整个文件夹放入extend扩展目录)
1、 条形码工具包下载  BCode.tar

setScale(2);
            $code->setThickness(30); // 条形码的厚度
            $code->setForegroundColor($color_black); // 条形码颜色
            $code->setBackgroundColor($color_white); // 空白间隙颜色
           // $code->setFont($font); //
            $code->parse($content); // 条形码需要的数据内容
        }
        catch(\Exception $exception)
        {
            $drawException = $exception;
        }

        //根据以上条件绘制条形码
        $drawing = new \BCGDrawing('', $color_white);
        if($drawException) {
            $drawing->drawException($drawException);
        }else{
            $drawing->setBarcode($code);
            $drawing->draw();
        }

        // 生成PNG格式的图片
        header('Content-Type: image/png');
       // header('Content-Disposition:attachment; filename="barcode.png"'); //自动下载
        $drawing->finish(\BCGDrawing::IMG_FORMAT_PNG);//若直接输出到浏览器,需要加 die;
    }
}

2、页面中的资源路径直接问该方法即可

  

3、完成以上就实现了条形码生成

附文:扫码枪扫条形码,传入WEB 表单页面

觉得有用的可以点一下喜欢哦

你可能感兴趣的:(二维码 / 条形码 生成 (ThinkPHP5.X ))