• PHP 生成条形码&二维码


    条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。

    这里采用php实现,支持大多数的码制。

    条码长度

    Code128,Code39 Extended, Code93 Extended 支持全全ASCII码。

    Code128有A、B、C三种字符集,每种字符集支持一部分,大致是这样的,

    A字符集支持支持AZ 26个大写字母、09 9个数字及一些特殊字符;
    B字符集支持支持AZ 26个大小写字母、09 9个数字及一些特殊字符;
    C字符集支持纯数字字符,支持0`9 9个数字,而且是偶数,如果是奇数,生成条码时自动在前面加0;最大长度纯字符为32位,纯字符加特殊符号炎44位。EAN/UCC 128 同 Code 128.

    CODE128码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码码制,由于其优良的特性在管理信息系统的设计中被广泛使用,CODE128码是应用最广泛的条码码制之一。

    CODE128码是1981年引入的一种高密度条码,CODE128 码可表示从 ASCII 0 到ASCII 127 共128个字符,故称128码。其中包含了数字、字母和符号字符。
    Code 128码与Code 39码有很多的相近性,都广泛运用在企业内部管理、生产流程、物流控制系统方面。不同的在于Code 128比Code 39能表现更多的字符,单位长度里的编码密度更高。当单位长度里不能容下Code 39编码或编码字符超出了Code 39的限制时,就可选择Code 128来编码。

    Code39,Code93支持的范围为09数字字符及AZ 大写字母和‘/’,‘+’,‘%’,‘$’,‘-’,‘.’及空格,长度理论上没有限制。

    Code39 Extended, Code93 Extended 不支持‘-’,‘.’,其它和39 93一样。

    EAN8,EAN13,EAN Ext,UPC A,UPC E,UPC Ext支持的范围为0`9数字字符,EAN8长度为8,EAN13长度为13,EAN8 Ext长度为10或者13,EAN13 Ext长度为15或者18,UPCA长度为12,UPCE长度为8,UPCE Ext长度为10或者13,UPCA Ext长度为14或者17。

    Bookland,ISSN,ISSN可能支持数字以外的其它字符,本中间件支持请参考“关于Bookland(ISBN)和ISSN”部分的说明。

    Code11 支持的范围为0`9数字字符及‘-’,长度理论上没有限制。

    Codabar支持的范围为0`9数字字符及‘A’,‘B’,‘C’,‘D’,‘-’,‘.’,‘/’,‘:’,‘+’,‘$’,开始和结尾字符必须是‘A’,‘B’,‘C’,‘D’中的字符,长度理论上没有限制。

    MSI,Code 2of5 支持的范围为0`9数字字符,长度理论上没有限制。

    PostNet支持的范围为0`9数字字符,长度为5位,9位,或者11位,本开发包支持带有非数字的格式,如12345-8012,使用更方便。

    Matrix 25 (矩阵25码) 支持的范围为0`9数字字符,长度为13位。

    安装所需的代码库

    composer require codeitnowin/barcode

    相关代码(具体展示在后面)

    <?php
    
    namespace AppHttpControllers;
    
    use IlluminateHttpRequest;
    
    
    use CodeItNowBarcodeBundleUtilsBarcodeGenerator;
    use CodeItNowBarcodeBundleUtilsQrCode;
    
    class BarCodeController extends Controller
    {
        public function index()
        {
    
            echo '<p>Example - QrCode</p>';
            $qrCode = new QrCode();
            $qrCode
                ->setText('https://www.php.net/manual/zh/')
                ->setSize(300)
                ->setPadding(10)
                ->setErrorCorrection('high')
                ->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
                ->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
                ->setLabel('https://www.php.net/')
                ->setLabelFontSize(16)
                ->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(2);
            $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);
            $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);
            $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->setNoLengthLimit(true);
            $barcode->setAllowsUnknownIdentifier(true);
            $code = $barcode->generate();
            echo '<img src="data:image/png;base64,' . $code . '" />';
    
            // i15为偶数
            echo '<hr>';
            echo '<p>Example - I25</p>';
            $barcode = new BarcodeGenerator();
            $barcode->setText("00123456789012345675");
            $barcode->setType(BarcodeGenerator::I25);
            $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);
            $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);
            $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);
            $code = $barcode->generate();
            echo '<img src="data:image/png;base64,' . $code . '" />';
    
        }
    }

    结果展示(代码在最后):

    Example – QrCode

    PHP  生成条形码


    Example – Code128

    image.png


    Example – Code11

    image.png


    Example – Code39

    image.png


    Example – Code39Extended

    image.png


    Example – Ean128

    image.png


    Example – Gs1128

    image.png


    Example – Gs1128

    image.png


    Example – I25

    image.png


    Example – Isbn

    image.png


    Example – Msi

    image.png


    Example – Postnet

    image.png


    Example – S25

    image.png


    Example – Upca

    image.png


    Example – Upce

    image.png

    转载:https://www.iacblog.com/2020/07/1141.html

  • 相关阅读:
    调用接口直接下载文件
    Oracle函数简单使用
    JAVA面试题刷题资料
    跨域
    ORACLE JOB
    C# 面试知识点网络文档整理
    GetBuffer 与ToArray区别,解决问题场景
    JQuery选择器分类
    C#判断字符串中含有多少个汉字
    XPATH中text()和string()的使用区别
  • 原文地址:https://www.cnblogs.com/yehuisir/p/13358786.html
Copyright © 2020-2023  润新知