下载条形码扩展包 放到extend目录下(扩展包在百度网盘)
image.png
新建model文件Bcode.php
文件内容如下
/**
* Created by :Administrator
* Time:2019/12/5 10:43
* 条形码
*/
namespace app\api_user\model;
class BCode
{
/**
* @param string $content 条形码信息
* @return string
* @throws \BCGDrawException
*/
public static function barcode($content = '')
{
if (empty($content)) return ['code' => 0, 'msg' => '生成失败'];
// 引用barcode文件夹对应的类
require_once '../extend/BCode/class/BCGFontFile.php'; #引入文件
require_once '../extend/BCode/class/BCGDrawing.php'; #引入文件
require_once '../extend/BCode/class/BCGcode39.barcode.php'; #引入文件
// ('BCode.BCGFontFile',EXTEND_PATH);
// //Loader::import('BCode.BCGColor',EXTEND_PATH);
// Loader::import('BCode.BCGDrawing',EXTEND_PATH);
// // 条形码的编码格式
// Loader::import('BCode.BCGcode39',EXTEND_PATH,'.barcode.php');
// $code = '';
// 加载字体大小
// $font = new \BCGFontFile('/BCode/class/font/Arial.ttf', 18);
//颜色条形码
$color_black = new \BCGColor(0, 0, 0);
$color_white = new \BCGColor(255, 255, 255);
$drawException = null;
try {
$code = new \BCGcode39();
$code->setScale(2);
$code->setThickness(30); // 条形码的厚度
$code->setForegroundColor($color_black); // 条形码颜色
$code->setBackgroundColor($color_white); // 空白间隙颜色
// $code->setFont($font); //
$code->parse($content); // 条形码需要的数据内容
} catch (\Exception $exception) {
$drawException = $exception;
}
//根据以上条件绘制条形码
//路径是否存在
$path = './upload/barcode';
if (!is_dir($path)) {
mkdir($path);
}
$filename = $path . '/' . $content . '.png';
$drawing = new \BCGDrawing($filename, $color_white); //filename为空表示输出到页面
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);
return ['code' => 1, 'msg' => $filename];
}
}