Maison  >  Article  >  cadre php  >  Explication graphique détaillée des codes-barres générant thinkphp5+barcode

Explication graphique détaillée des codes-barres générant thinkphp5+barcode

藏色散人
藏色散人avant
2021-03-03 15:47:262111parcourir

La colonne tutorielle suivante de thinkphp vous présentera comment générer des codes-barres avec thinkphp5 + barcode. J'espère qu'elle sera utile aux amis dans le besoin !

thinkphp5 + barcode génère des codes-barres

Explication graphique détaillée des codes-barres générant thinkphp5+barcode

1. Accédez au site officiel pour télécharger la bibliothèque de classes "[https://www.barcodebakery.com...]", sélectionnez votre propre version à télécharger

Explication graphique détaillée des codes-barres générant thinkphp5+barcode

2. Décompressez-le et placez-le dans " E: phpstudyPHPTutorialWWWguahaovendor", où le fichier de classe est tous les fichiers de classe, générer le code-barres consiste à appeler la classe dans le dossier, le fichier de police est la police, index.php est une fonction pour génère des codes-barres avec des conditions facultatives et constitue l'entrée du programme principal, test_1D .php est un exemple de génération de codes-barres et test_1D.html est la page correspondante pour le rendu des codes-barres

Explication graphique détaillée des codes-barres générant thinkphp5+barcode

3. Nous pouvons utiliser directement l'exemple officiel (test_1D.php), le copier là où vous devez l'utiliser, puis apporter de légères modifications en fonction de vos besoins. Il convient de noter que le chemin pour charger la classe tierce. la bibliothèque doit être modifiée.

Code PHP pour générer le code-barres

<?php namespace app\index\controller;
use think\Controller;

/**
* 条形码操作类
*/
class Barcode extends Controller
{
    public function createBarcode()
    {
        $class_dir = VENDOR_PATH.&#39;barcode/class/&#39;;
        // Including all required classes
        require_once($class_dir.&#39;BCGFontFile.php&#39;);
        require_once($class_dir.&#39;BCGColor.php&#39;);
        require_once($class_dir.&#39;BCGDrawing.php&#39;);
        require_once($class_dir.&#39;BCGcode39.barcode.php&#39;);

        // Loading Font
        // 注意font和class是同一级文件夹
        $font = new \BCGFontFile(VENDOR_PATH.&#39;barcode/font/Arial.ttf&#39;, 18);// The arguments are R, G, B for color.
        $color_black = new \BCGColor(0, 0, 0);
        $color_white = new \BCGColor(255, 255, 255);

        $drawException = null;
        try {
            $code = new \BCGcode39();
            $code->setScale(2); // Resolution
            $code->setThickness(30); // Thickness
            $code->setForegroundColor($color_black); // Color of bars
            $code->setBackgroundColor($color_white); // Color of spaces
            $code->setFont($font); // Font (or 0)  0不显示文字
         $text = isset($_GET['text']) ? $_GET['text'] : 'HELLO';
            $code->parse($text); // Text
        } catch(Exception $exception) {
            $drawException = $exception;
        }

        /* Here is the list of the arguments
- Filename (empty : display on screen)
- Background color */
        $drawing = new \BCGDrawing('', $color_white);
        if($drawException) {
            $drawing->drawException($drawException);
        } else {
            $drawing->setBarcode($code);
            $drawing->draw();
        }

        // Header that says it is an image (remove it if you save the barcode to a file)
        header('Content-Type: image/png');
        header('Content-Disposition: inline; filename="barcode.png"');

        // Draw (or save) the image into PNG format.
        $drawing->finish(\BCGDrawing::IMG_FORMAT_PNG);

    }

    public function barcodedes()
    {
        return $this->fetch();
    }
}
?>

Accepter le code HTML pour rendre le code-barres

<img  alt="Explication graphique détaillée des codes-barres générant thinkphp5+barcode" >

Explication graphique détaillée des codes-barres générant thinkphp5+barcode

Bien sûr, src des paramètres peuvent également être transportés, changez simplement le code suivant

code html

<img  alt="Explication graphique détaillée des codes-barres générant thinkphp5+barcode" >'123'))}">

code php et remplacez

$text = isset($_GET['text']) ? $_GET['text'] : 'HELLO';

par

$text = input('text');      //接收的参数

4. Si vous souhaitez enregistrer le code-barres localement, remplissez simplement le chemin de sauvegarde lors de l'instanciation de "BCGDrawing"

// 文件路径
        $file_dir = 'uploads/barcode/'.date('Y-m-d');
        if (!file_exists($file_dir)) {
            mkdir($file_dir,0755,true);
        }
        $imgUrl = $file_dir.'/'.time().'.png';
        $class_dir = VENDOR_PATH.'barcode/class/';
        // Including all required classes
        require_once($class_dir.'BCGFontFile.php');
        require_once($class_dir.'BCGColor.php');
        require_once($class_dir.'BCGDrawing.php');
        require_once($class_dir.'BCGcode39.barcode.php');
        // Loading Font
        // 注意font和class是同一级文件夹
        $font = new \BCGFontFile(VENDOR_PATH.'barcode/font/Arial.ttf', 18);

        // Don't forget to sanitize user inputs
        // $text = isset($_GET['text']) ? $_GET['text'] : 'HELLO';
        // The arguments are R, G, B for color.
        $color_black = new \BCGColor(0, 0, 0);
        $color_white = new \BCGColor(255, 255, 255);

        $drawException = null;
        try {
            $code = new \BCGcode39();
            $code->setScale(2); // Resolution
            $code->setThickness(30); // Thickness
            $code->setForegroundColor($color_black); // Color of bars
            $code->setBackgroundColor($color_white); // Color of spaces
            $code->setFont($font); // Font (or 0)
            $text = input('text');      //接收的参数
            $text = isset($text) ? $text :'无参数';      
            $code->parse($text); // Text
        } catch(Exception $exception) {
            $drawException = $exception;
        }

        /* Here is the list of the arguments
- Filename (empty : display on screen)
- Background color */
        // 保存到本地 (路径,颜色)路径为空则表示显示到页面上
        $drawing = new \BCGDrawing($imgUrl, $color_white);
        if($drawException) {
            $drawing->drawException($drawException);
        } else {
            $drawing->setBarcode($code);
            $drawing->draw();
        }
        $drawing->finish(\BCGDrawing::IMG_FORMAT_PNG);

5. Après avoir généré le code-barres, comment déterminer si le code-barres peut. être utilisé ?

Vous pouvez enregistrer le code-barres sous forme d'image localement, ouvrir le site officiel "[https://www.barcodebakery.com/en/download]" et télécharger le code-barres qui vient d'être généré si les paramètres analysés. correspondent à ceux que vous avez saisis Idem, indiquant que le code-barres peut être utilisé.

Explication graphique détaillée des codes-barres générant thinkphp5+barcode

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer