亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php如何生成條形碼方法詳解

2020-03-22 18:48:46
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了php實現生成code128條形碼的方法,結合完整實例形式給出了php條形碼生成類的定義與使用方法,需要的朋友可以參考下

本文實例講述了php實現生成code128條形碼的方法。分享給大家供大家參考,具體如下:

效果圖:


<?phphtml' target='_blank'>class BarCode128 {  const STARTA = 103;  const STARTB = 104;  const STARTC = 105;  const STOP = 106;  private $unit_width = 1; //單位寬度 缺省1個象素  private $is_set_height = false;  private $width = -1;  private $heith = 35;  private $quiet_zone = 6;  private $font_height = 15;  private $font_type = 4;  private $color =0x000000;  private $bgcolor =0xFFFFFF;  private $image = null;  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");  private $valid_code = -1;  private $type ='B';  private $start_codes =array('A'=>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;$i<strlen($this->code);$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<strlen($this->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();?>

附加一個強大的條碼生成擴展包:
http://www.barcodebakery.com/

以上就是php如何生成條形碼方法詳解的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情视频在线| 欧美视频免费在线| 最近2019中文字幕一页二页| 福利一区视频在线观看| 精品国产一区二区三区久久狼5月| 伊人av综合网| 欧美日韩国产成人在线观看| 久久色免费在线视频| 亚洲影视九九影院在线观看| 丝袜亚洲另类欧美重口| 欧美午夜电影在线| 亚洲最大福利视频网站| 中文字幕成人精品久久不卡| 亚洲国产另类 国产精品国产免费| 国产精品九九久久久久久久| 懂色av中文一区二区三区天美| 国外成人在线视频| 久久久精品国产| 97热在线精品视频在线观看| 亚洲高清av在线| 91国自产精品中文字幕亚洲| 欧美日韩亚洲精品内裤| 亚洲欧美日韩中文视频| 久久成人av网站| 韩曰欧美视频免费观看| 国产亚洲人成a一在线v站| 亚洲国产精品99| 海角国产乱辈乱精品视频| 亚洲男人天堂视频| 日韩高清免费观看| 亚洲日韩欧美视频一区| 国产有码在线一区二区视频| 日本久久久久亚洲中字幕| 日韩在线不卡视频| 俺也去精品视频在线观看| 国产日产久久高清欧美一区| 中文字幕欧美亚洲| 欧美猛男性生活免费| 免费成人高清视频| 欧美日韩中文在线| 欧美精品999| 欧美性xxxx在线播放| 日韩视频一区在线| 91系列在线播放| 日韩欧美成人免费视频| 国产精品一久久香蕉国产线看观看| 国产va免费精品高清在线观看| 国产色婷婷国产综合在线理论片a| 国产精品99导航| 亚洲欧美激情精品一区二区| 国产精品极品美女在线观看免费| 亚洲午夜未删减在线观看| 国产精品美女视频网站| 欧美大片欧美激情性色a∨久久| 欧美在线一级va免费观看| 在线观看欧美日韩国产| 欧洲日韩成人av| 久久精品国产91精品亚洲| 狠狠色香婷婷久久亚洲精品| 国产亚洲欧美另类中文| 奇米一区二区三区四区久久| 午夜精品久久久久久99热| 91九色国产在线| 91sa在线看| 欧美裸体xxxx极品少妇软件| 精品久久久久人成| 欧美成人手机在线| 欧美高清在线播放| 国产精品小说在线| 久久人人爽人人爽人人片av高请| 亚洲一级黄色av| 在线国产精品播放| 日韩精品免费在线| 91在线观看免费高清完整版在线观看| 国产精品偷伦免费视频观看的| 欧美成人精品xxx| 亚洲影视九九影院在线观看| 亚洲美女精品成人在线视频| 国产一区二区三区高清在线观看| 久久久久久这里只有精品| 97成人精品区在线播放| 欧美日韩中文在线观看| 亚洲综合中文字幕在线| 欧美极品在线视频| 精品国产美女在线| 91久久国产精品91久久性色| 亚洲va欧美va国产综合久久| 国产www精品| 国产精品久久激情| 欧美黑人国产人伦爽爽爽| 亚洲成人av在线| 最近中文字幕mv在线一区二区三区四区| 国产色视频一区| 日韩视频在线观看免费| 欧美日本高清一区| 亚洲综合色av| 欧美专区在线播放| 亚洲成人激情小说| 亚洲精品国产成人| 日韩欧美亚洲范冰冰与中字| 欧美另类69精品久久久久9999| 国产欧美一区二区白浆黑人| 色综久久综合桃花网| 欧美成人免费全部观看天天性色| 91高清视频免费| 日韩成人在线电影网| 91中文在线视频| 亚洲日韩中文字幕| 亚洲国产成人91精品| 精品久久久久久久久久久久久| 成人网址在线观看| 国产精品中文字幕久久久| 日韩精品免费在线视频| 日韩欧美精品网址| 清纯唯美日韩制服另类| 亚洲色图偷窥自拍| 91网在线免费观看| 久久影院资源网| 国产精品 欧美在线| 欧美一区在线直播| 久久国产精品久久久久久久久久| 国产精品一区二区久久| 国产日韩精品在线观看| 不卡毛片在线看| 国产精品av在线播放| 亚洲第一视频网| 日韩中文字幕视频在线| 国产一区二中文字幕在线看| 一区二区三区四区在线观看视频| 成人免费在线网址| 综合136福利视频在线| 蜜臀久久99精品久久久久久宅男| 国模精品视频一区二区三区| 怡红院精品视频| 国产精品欧美久久久| 国产亚洲精品一区二555| 亚洲国产精品久久久久秋霞不卡| 国产成人精品日本亚洲| 欧美成人午夜剧场免费观看| 国产亚洲a∨片在线观看| 日韩欧美在线观看视频| 欧美国产在线视频| 亚洲视频日韩精品| 欧美日韩视频在线| 国产精品综合久久久| 97在线免费观看视频| 国产在线观看精品一区二区三区| 国内精品400部情侣激情| 久久久久亚洲精品| 欧美大人香蕉在线| 亚洲免费人成在线视频观看| 国产午夜精品久久久| 亚洲综合av影视| 91av免费观看91av精品在线| 国内成人精品一区| 国内外成人免费激情在线视频| 欧美超级免费视 在线| 国产成人精品国内自产拍免费看| 裸体女人亚洲精品一区| 亚洲精品视频久久| 91精品国产综合久久久久久蜜臀| 久久久久久亚洲精品中文字幕| 色吧影院999| 影音先锋欧美在线资源|