ホームページ  >  記事  >  php教程  >  PHP は code128 バーコードを生成します

PHP は code128 バーコードを生成します

WBOY
WBOYオリジナル
2016-06-20 08:42:461815ブラウズ

PHP は code128 バーコードを生成します

レンダリング:
PHP は code128 バーコードを生成します<?php<br /> <br /> クラス BarCode128 {<br /> const STARTA = 103;<br /> const STARTB = 104;<br /> const STARTC = 105;<br /> const STOP = 106;<br /> Private $unit_width = 1 //単位幅のデフォルトは 1 ピクセル<br /> プライベート $is_set_height = false;<br /> private $width = -1;<br /> private $heith = 35;<br /> プライベート $quiet_zone = 6;<br /> プライベート $font_height = 15;<br /> プライベート $font_type = 4;<br /> プライベート $color =0x000000;<br /> プライベート $bgcolor =0xFFFFFF;<br /> プライベート $image = null;<br /> private $codes = array("212222","222122","222221","121223","121322","131222","122213","122312","132212","221213","221312", "231212"、"112232"、"122132"、"122231"、"113222"、"123122"、"123221"、"223211"、"221132"、"221231"、"213212"、"223112"、"312131 ","311222","321122","321221","312212","322112","322211","212123","212321","232121","111323","131123","131321", "112313"、"132113"、"132311"、"211313"、"231113"、"231311"、"112133"、"112331"、"132131"、"113123"、"113321"、"133121"、"313121 ","211331","231131","213113","213311","213131","311123","311321","331121","312113","312311","332111","314111", "221411"、"431111"、"111224"、"111422"、"121124"、"121421"、"141122"、"141221"、"112214"、"112412"、"122114"、"122411"、"142112 ","142211","241211","221114","413111","241112","134111","111242","121142","121241","114212","124112","124211", "411212"、"421112"、"421211"、"212141"、"214121"、"412121"、"111143"、"111341"、"131141"、"114113"、"114311"、"411113"、"411311 ","113141","114131","311141","411131","211412","211214","211412","2331112");<br /> プライベート $valid_code = -1;<br /> プライベート $type ='B';<br /> Private $start_codes =array('A'=>self::STARTA,'B'=>self::STARTB,'C'=>self::STARTC);<br> プライベート $code ='';<br> プライベート $bin_code ='';<br> プライベート $text ='';<br> <br> パブリック関数 __construct($code='',$text='',$type='B')<br> {<br> If (in_array($type,array('A','B','C')))<br> $this->setType($type);<br> その他<br> $this->setType('B');<br> if ($code !=='')<br> $this->setCode($code);<br> if ($text !=='')<br> $this->setText($text);<br> }<br> パブリック関数 setUnitWidth($unit_width)<br> {<br>        $this->unit_width = $unit_width;<br>         $this->quiet_zone = $this->unit_width*6;<br>         $this->font_height = $this->>unit_width*15;<br>         if (!$this->is_set_height)<br>         {<br>             $this->heith = $this->unit_width*35;<br>         }<br>     }<br>     パブリック関数 setFontType($font_type)<br>     {<br>         $this->font_type = $font_type;<br>     }<br>     パブリック関数 setBgcolor($bgcoloe)<br>     {<br>         $this->bgcolor = $bgcoloe;<br>     }<br>     パブリック関数 setColor($color)<br>     {<br>         $this->color = $color;<br>     }<br>     パブリック関数 setCode($code)<br>     {<br>         if ($code !='')<br>         {<br>             $this->code= $code;<br>             if ($this->text ==='')<br>                 $this->text = $code;<br>         }<br>     }<br>     パブリック関数 setText($text)<br>     {<br>         $this->text = $text;<br>     }<br> <br>     パブリック関数 setType($type)<br>     {<br>         $this->type = $type;<br>     }<br>     パブリック関数 setHeight($height)<br>     {<br>         $this->height = $height;<br>         $this->is_set_height = true;<br>     }<br> <br>     プライベート関数 getValueFromChar($ch)<br>     {<br>         $val = ord($ch);<br>         試してみてください<br>         {<br>             if ($this->type =='A')<br>             {<br>                 if ($val > 95)<br>                     throw new Exception('不正なバーコード文字'.$ch.' for code128A in '.__FILE__.' on line '.__LINE__);<br>                 if ($val < 32)<br />                     $val += 64;<br />                 それ以外<br />                     $val -=32;<br />             }<br />             elseif ($this->type =='B')<br />             {<br />                 if ($val < 32 || $val > 127)<br />                    throw new Exception('不正なバーコード文字'.$ch.' for code128B in '.__FILE__.' on line '.__LINE__);<br />                 それ以外<br />                     $val -=32;<br />             }<br />             それ以外<br />             {<br />                 if (!is_numeric($ch) || (int)$ch <br />                     throw new Exception('不正なバーコード文字'.$ch.' for code128C in '.__FILE__.' on line '.__LINE__);<br />                 それ以外<br />                 {<br />                     if (strlen($ch) ==1)<br />                         $ch .='0';<br />                     $val = (int)($ch);<br />                 }<br />             }<br />         }<br />         catch(Exception $ex)<br />         {<br />             errorlog('die',$ex->getMessage());<br />         }<br />         return $val;<br />     }<br />     プライベート関数parseCode()<br />     {<br />         $this->type=='C'?$step=2:$step=1;<br />         $val_sum = $this->start_codes[$this->type];<br />         $this->width = 35;<br />         $this->bin_code = $this->codes[$val_sum];<br />         for($i =0;$i<strlen($this->code);$i+=$step)<br />         {<br />             $this->width +=11;<br />             $ch = substr($this->code,$i,$step);<br />             $val = $this->getValueFromChar($ch);<br />             $val_sum += $val;<br />             $this->bin_code .= $this->codes[$val];<br />         }<br />         $this->width *=$this->unit_width;<br>         $val_sum = $val_sum%103;<br>         $this->valid_code = $val_sum;<br>         $this->bin_code .= $this->codes[$this->valid_code];<br>         $this->bin_code .= $this->codes[self::STOP];<br>     }<br>     パブリック関数 getValidCode()<br>     {<br>         if ($this->valid_code == -1)<br>            $this->parseCode();<br>         return $this->valid_code;<br>     }<br>     パブリック関数 getWidth()<br>     {<br>         if ($this->width ==-1)<br>             $this->parseCode();<br>         return $this->width;<br>     }<br> <br>     パブリック関数 getHeight()<br>     {<br>         if ($this->width ==-1)<br>             $this->parseCode();<br>         return $this->height;<br>     }<br> <br>     public function createBarCode($image_type ='png',$file_name=null)<br>     {<br>         $this->parseCode();<br>         $this->image = ImageCreate($this->width+2*$this->quiet_zone,$this->heith + $this->font_height);<br>         $this->bgcolor = imagecolorallocate($this->image,$this->bgcolor >gt;>16,($this->bgcolor >gt;>8)&0x00FF,$this->bgcolor & 0xFF);<br>         $this->color = imagecolorallocate($this->image,$this->color >> 16,($this->color >> 8)&0x00FF,$this->color & 0xFF);<br>         ImageFilledRectangle($this->image, 0, 0, $this->width + 2*$this->quiet_zone,$this->heith + $this->font_height, $this->bgcolor) ;<br>         $sx = $this->quiet_zone;<br>         $sy = $this->font_height -1;<br>         $fw = 10; //編號為2または3の字體寬度為10、為4または5の字國寬度為11<br>         if ($this->font_type >3)<br>         {<br>             $sy++;<br>             $fw=11;<br>         }<br>         $ex = 0;<br>         $ey = $this->heith + $this->font_height - 2;<br>         for($i=0;$i<strlen>bin_code);$i++)<br>         {<br>             $ex = $sx + $this->unit_width*(int) $this->bin_code{$i} -1;<br>             if ($i%2==0)<br>                 ImageFilledRectangle($this->image, $sx, $sy, $ex,$ey, $this->color);<br>             $sx =$ex + 1;<br>         }<br>         $t_num = strlen($this->text);<br>         $t_x = $this->幅/$t_num;<br>         $t_sx = ($t_x -$fw)/2;        //目的は使用文字居中平均分布<br>         for($i=0;$i         {<br>             imagechar($this->image,$this->font_type,6*$this->unit_width +$t_sx +$i*$t_x,0,$this->text{$i},$this- >色);<br>         }<br>         if (!$file_name)<br>        {<br>             header("Content-Type: image/".$image_type);<br>         }<br>         スイッチ ($image_type)<br>         {<br>             case 'jpg':<br>             case 'jpeg':<br>                 Imagejpeg($this->image,$file_name);<br>                 休憩;<br>             ケース 'png':<br>                 Imagepng($this->image,$file_name);<br>                 休憩;<br>             ケース 'gif':<br>                 休憩;<br>                 Imagegif($this->image,$file_name);<br>             デフォルト:<br>                 Imagepng($this->image,$file_name);<br>                 休憩;<br>         }<br>     }<br> }<br> <br> $barcode = 新しい BarCode128('88888888');<br> $barcode->createBarCode();<br> ?></strlen>附加一强大的条序生成扩展包
http://www.barcodebakery.com/
">
http://www.barcodebakery.com/


PHP は code128 バーコードを生成します

AD:真正免费,領域名+虚机+企业邮箱=0元

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。