您的当前位置:首页>全部文章>文章详情

thinkphp6 生成Barcode条形码和Qrcode二维码的方法

发表于:2022-11-22 12:10:38浏览:1318次TAG: #ThinkPHP #PHP #二维码 #条形码

条形码技术是在计算机的应用实践中产生和发展起来的一种自动识别技术。它是为实现对信息的自动扫描而设计的,它是实现快速、准确而可靠地采集数据的有效手段。显示生活找那个随处可以看见条形码,商品条形码一般多少位?答案是13位。

商品条码一般分为4个部分,按3-5-4-1分,第一部分代表国家,第二部分代表生产厂商,第三部分代表厂内商品代码,第四部分是效验码:

以条形码 6936983800013 为例此条形码分为4个部分,从左到右分别为:

1-3位:共3位,对应该条码的693,是中国的国家代码之一。(690—699都是中国的代码,由国际上分配)。
4-8位:共5位,对应该条码的69838,代表着生产厂商代码,由厂商申请,国家分配。
9-12位:共4位,对应该条码的0001,代表着厂内商品代码,由厂商自行确定。

第13位:共1位,对应该条码的3,是校验码,依据一定的算法(一般使用条码软件,由软件系统自动弹出最后一位校验码),由前面12位数字计算而得到。
图片alt

Thinkphp6如何生成条形码?下面分享一下具体的方法。
首先运行命令下载依赖包:composer require codeitnowin/barcode
如果不可用,可以从以下网址下载:

下载地址一:https://github.com/codeitnowin/barcode-generator
下载地址二:https://pan.baidu.com/s/1-hFWYfed4y3YkWKLz2o75g

然后手动下载完后解压缩,将codeitnowin文件整个拷贝到项目的扩展文件夹extend中,如下图:
图片alt

二维码和条形码生成的PHP代码如下:

<?php
namespace app\index\controller;
use app\BaseController;
use CodeItNow\BarcodeBundle\Utils\BarcodeGenerator;
use CodeItNow\BarcodeBundle\Utils\QrCode;
class Barcode extends BaseController
{
public function index(){
echo '<p>Example - QrCode</p>';
$qrCode = new QrCode();
$qrCode
    ->setText('http://www.gouguoa.com/')
    ->setSize(200)
    ->setPadding(10)
    ->setErrorCorrection('high')
    ->setForegroundColor($this->hex2rgba('#F00'))
    ->setBackgroundColor($this->hex2rgba('#FFF'))
    ->setLabel('http://www.hilo8.com/')
    ->setLabelFontSize(14)
    ->setImageType(QrCode::IMAGE_TYPE_PNG);
echo '<img src="data:' . $qrCode->getContentType() . ';base64,' . $qrCode->generate() . '" />';
echo '<hr>';
echo '<p>Example - Code128</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("0123456789");
$barcode->setType(BarcodeGenerator::Code128);
$barcode->setScale(1);
$barcode->setThickness(25);
$barcode->setFontSize(10);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - Code11</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("0123456789");
$barcode->setType(BarcodeGenerator::Code11);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - Code39</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("0123456789");
$barcode->setType(BarcodeGenerator::Code39);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - Code39Extended</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("0123456789");
$barcode->setType(BarcodeGenerator::Code39Extended);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - Ean128</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("00123456789012345675");
$barcode->setType(BarcodeGenerator::Ean128);
$barcode->setScale(2);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - Ean13</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("6974798950011");
$barcode->setType(BarcodeGenerator::Ean13);
$barcode->setScale(2);
$barcode->setFontSize(14);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - Gs1128</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("00123456789012345675");
$barcode->setType(BarcodeGenerator::Gs1128);
$barcode->setScale(2);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - Gs1128</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("4157707266014651802001012603068039000000006377069620171215");
$barcode->setType(BarcodeGenerator::Gs1128);
$barcode->setScale(2);
$barcode->setFontSize(14);
$barcode->setNoLengthLimit(true);
$barcode->setAllowsUnknownIdentifier(true);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - I25</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("00123456789012345675");
$barcode->setType(BarcodeGenerator::I25);
$barcode->setFontSize(12);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - Isbn</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("0012345678901");
$barcode->setType(BarcodeGenerator::Isbn);
$barcode->setScale(2);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - Msi</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("0012345678901");
$barcode->setType(BarcodeGenerator::Msi);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - Postnet</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("01234567890");
$barcode->setType(BarcodeGenerator::Postnet);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - S25</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("012345678901");
$barcode->setType(BarcodeGenerator::S25);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - Upca</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("012345678901");
$barcode->setType(BarcodeGenerator::Upca);
$barcode->setScale(2);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
echo '<hr>';
echo '<p>Example - Upce</p>';
$barcode = new BarcodeGenerator();
$barcode->setText("012345");
$barcode->setType(BarcodeGenerator::Upce);
$barcode->setScale(2);
$code = $barcode->generate();
echo '<img src="data:image/png;base64,' . $code . '" />';
}
private function hex2rgba($hexColor='#000',$a=0)
{
    $color = str_replace('#','',strtoupper(trim($hexColor)));
    if(strlen($color)>3){
        $rgba=array(
            'r'=>hexdec(substr($color,0,2)),
            'g'=>hexdec(substr($color,2,2)),
            'b'=>hexdec(substr($color,4,2)),
'a'=>$a
        );
    }else{
        $rgba=array(
            'r'=>hexdec(substr($color,0,1). substr($color,0,1)),
            'g'=>hexdec(substr($color,1,1). substr($color,1,1)),
            'b'=>hexdec(substr($color,2,1). substr($color,2,1)),
'a'=>$a
        );
    }
    return $rgba;
}
}

图片alt