Heim  >  Artikel  >  php教程  >  php生成code128条形码

php生成code128条形码

WBOY
WBOYOriginal
2016-06-20 08:42:461815Durchsuche

php生成code128条形码

效果图:
php生成code128条形码<?php <br /> <br> class BarCode128 {<br>     const STARTA = 103;<br>     const STARTB = 104;<br>     const STARTC = 105;<br>     const STOP = 106;<br>     private $unit_width = 1; //单位宽度 缺省1个象素<br>     private $is_set_height = false;<br>     private $width = -1;<br>     private $heith = 35;<br>     private $quiet_zone = 6;<br>     private $font_height = 15;<br>     private $font_type = 4;<br>     private $color =0x000000;<br>     private $bgcolor =0xFFFFFF;<br>     private $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>     private $valid_code = -1;<br>     private $type ='B';<br>     private $start_codes =array('A'=>self::STARTA,'B'=>self::STARTB,'C'=>self::STARTC);<br>     private $code ='';<br>     private $bin_code ='';<br>     private $text ='';<br> <br>     public function __construct($code='',$text='',$type='B')<br>     {<br>         if (in_array($type,array('A','B','C')))<br>             $this->setType($type);<br>         else<br>             $this->setType('B');<br>         if ($code !=='')<br>             $this->setCode($code);<br>         if ($text !=='')<br>             $this->setText($text);<br>     }<br>     public function 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>     public function setFontType($font_type)<br>     {<br>         $this->font_type = $font_type;<br>     }<br>     public function setBgcolor($bgcoloe)<br>     {<br>         $this->bgcolor = $bgcoloe;<br>     }<br>     public function setColor($color)<br>     {<br>         $this->color = $color;<br>     }<br>     public function setCode($code)<br>     {<br>         if ($code !='')<br>         {<br>             $this->code= $code;<br>             if ($this->text ==='')<br>                 $this->text = $code;<br>         }<br>     }<br>     public function setText($text)<br>     {<br>         $this->text = $text;<br>     }<br> <br>     public function setType($type)<br>     {<br>         $this->type = $type;<br>     }<br>     public function setHeight($height)<br>     {<br>         $this->height = $height;<br>         $this->is_set_height = true;<br>     }<br> <br>     private function getValueFromChar($ch)<br>     {<br>         $val = ord($ch);<br>         try<br>         {<br>             if ($this->type =='A')<br>             {<br>                 if ($val > 95)<br>                     throw new Exception(' illegal barcode character '.$ch.' for code128A in '.__FILE__.' on line '.__LINE__);<br>                 if ($val                      $val += 64;<br>                 else<br>                     $val -=32;<br>             }<br>             elseif ($this->type =='B')<br>             {<br>                 if ($val  127)<br>                     throw new Exception(' illegal barcode character '.$ch.' for code128B in '.__FILE__.' on line '.__LINE__);<br>                 else<br>                     $val -=32;<br>             }<br>             else<br>             {<br>                 if (!is_numeric($ch) || (int)$ch  99)<br>                     throw new Exception(' illegal barcode character '.$ch.' for code128C in '.__FILE__.' on line '.__LINE__);<br>                 else<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>     private function 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>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>     public function getValidCode()<br>     {<br>         if ($this->valid_code == -1)<br>             $this->parseCode();<br>         return $this->valid_code;<br>     }<br>     public function getWidth()<br>     {<br>         if ($this->width ==-1)<br>             $this->parseCode();<br>         return $this->width;<br>     }<br> <br>     public function 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 >> 16,($this->bgcolor >> 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->width/$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->color);<br>         }<br>         if (!$file_name)<br>         {<br>             header("Content-Type: image/".$image_type);<br>         }<br>         switch ($image_type)<br>         {<br>             case 'jpg':<br>             case 'jpeg':<br>                 Imagejpeg($this->image,$file_name);<br>                 break;<br>             case 'png':<br>                 Imagepng($this->image,$file_name);<br>                 break;<br>             case 'gif':<br>                 break;<br>                 Imagegif($this->image,$file_name);<br>             default:<br>                 Imagepng($this->image,$file_name);<br>                 break;<br>         }<br>     }<br> }<br> <br> $barcode = new BarCode128('88888888');<br> $barcode->createBarCode();<br> ?></strlen></strlen>附加一个强大的条码生成扩展包
http://www.barcodebakery.com/
">
http://www.barcodebakery.com/


php生成code128条形码

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:HTML5两层canvas实现的刮刮卡效果Nächster Artikel:tp5验证码