Home > php教程 > php手册 > body text

php生成code128条形码

WBOY
Release: 2016-06-20 08:42:46
Original
1813 people have browsed it

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元

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template