使用php智能生成code128条形码-创新互联
这篇文章将为大家详细讲解有关使用php智能生成code128条形码,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、雅安服务器托管、营销软件、网站建设、临朐网站维护、网站推广。具体如下:
self::STARTA,'B'=>self::STARTB,'C'=>self::STARTC); private $code =''; private $bin_code =''; private $text =''; public function __construct($code='',$text='',$type='B') { if (in_array($type,array('A','B','C'))) $this->setType($type); else $this->setType('B'); if ($code !=='') $this->setCode($code); if ($text !=='') $this->setText($text); } public function setUnitWidth($unit_width) { $this->unit_width = $unit_width; $this->quiet_zone = $this->unit_width*6; $this->font_height = $this->unit_width*15; if (!$this->is_set_height) { $this->heith = $this->unit_width*35; } } public function setFontType($font_type) { $this->font_type = $font_type; } public function setBgcolor($bgcoloe) { $this->bgcolor = $bgcoloe; } public function setColor($color) { $this->color = $color; } public function setCode($code) { if ($code !='') { $this->code= $code; if ($this->text ==='') $this->text = $code; } } public function setText($text) { $this->text = $text; } public function setType($type) { $this->type = $type; } public function setHeight($height) { $this->height = $height; $this->is_set_height = true; } private function getValueFromChar($ch) { $val = ord($ch); try { if ($this->type =='A') { if ($val > 95) throw new Exception(' illegal barcode character '.$ch.' for code128A in '.__FILE__.' on line '.__LINE__); if ($val < 32) $val += 64; else $val -=32; } elseif ($this->type =='B') { if ($val < 32 || $val > 127) throw new Exception(' illegal barcode character '.$ch.' for code128B in '.__FILE__.' on line '.__LINE__); else $val -=32; } else { if (!is_numeric($ch) || (int)$ch < 0 || (int)($ch) > 99) throw new Exception(' illegal barcode character '.$ch.' for code128C in '.__FILE__.' on line '.__LINE__); else { if (strlen($ch) ==1) $ch .='0'; $val = (int)($ch); } } } catch(Exception $ex) { errorlog('die',$ex->getMessage()); } return $val; } private function parseCode() { $this->type=='C'?$step=2:$step=1; $val_sum = $this->start_codes[$this->type]; $this->width = 35; $this->bin_code = $this->codes[$val_sum]; for($i =0;$icode);$i+=$step) { $this->width +=11; $ch = substr($this->code,$i,$step); $val = $this->getValueFromChar($ch); $val_sum += $val; $this->bin_code .= $this->codes[$val]; } $this->width *=$this->unit_width; $val_sum = $val_sum%103; $this->valid_code = $val_sum; $this->bin_code .= $this->codes[$this->valid_code]; $this->bin_code .= $this->codes[self::STOP]; } public function getValidCode() { if ($this->valid_code == -1) $this->parseCode(); return $this->valid_code; } public function getWidth() { if ($this->width ==-1) $this->parseCode(); return $this->width; } public function getHeight() { if ($this->width ==-1) $this->parseCode(); return $this->height; } public function createBarCode($image_type ='png',$file_name=null) { $this->parseCode(); $this->image = ImageCreate($this->width+2*$this->quiet_zone,$this->heith + $this->font_height); $this->bgcolor = imagecolorallocate($this->image,$this->bgcolor >> 16,($this->bgcolor >> 8)&0x00FF,$this->bgcolor & 0xFF); $this->color = imagecolorallocate($this->image,$this->color >> 16,($this->color >> 8)&0x00FF,$this->color & 0xFF); ImageFilledRectangle($this->image, 0, 0, $this->width + 2*$this->quiet_zone,$this->heith + $this->font_height, $this->bgcolor); $sx = $this->quiet_zone; $sy = $this->font_height -1; $fw = 10; //編號為2或3的字體的寬度為10,為4或5的字體寬度為11 if ($this->font_type >3) { $sy++; $fw=11; } $ex = 0; $ey = $this->heith + $this->font_height - 2; for($i=0;$i bin_code);$i++) { $ex = $sx + $this->unit_width*(int) $this->bin_code{$i} -1; if ($i%2==0) ImageFilledRectangle($this->image, $sx, $sy, $ex,$ey, $this->color); $sx =$ex + 1; } $t_num = strlen($this->text); $t_x = $this->width/$t_num; $t_sx = ($t_x -$fw)/2; //目的为了使文字居中平均分布 for($i=0;$i<$t_num;$i++) { imagechar($this->image,$this->font_type,6*$this->unit_width +$t_sx +$i*$t_x,0,$this->text{$i},$this->color); } if (!$file_name) { header("Content-Type: image/".$image_type); } switch ($image_type) { case 'jpg': case 'jpeg': Imagejpeg($this->image,$file_name); break; case 'png': Imagepng($this->image,$file_name); break; case 'gif': break; Imagegif($this->image,$file_name); default: Imagepng($this->image,$file_name); break; } } } $barcode = new BarCode128('88888888'); $barcode->createBarCode(); ?>
关于使用php智能生成code128条形码就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
本文标题:使用php智能生成code128条形码-创新互联
文章分享:http://cdiso.cn/article/csiieg.html