注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天朝布衣田中码农参上

苦逼码农的点点滴滴,请多多指教!

 
 
 

日志

 
 
 
 

PHP利用开源软件barcode来生成条形码  

2017-03-13 15:06:34|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成平行线的图案。在日常生活中,条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件地点起止、类别、日期等许多信息。之前可能大家都用过二维码,但这次我们是要用PHP来生成条形码,同样也是非常简单。
1)去下载开源的barcode,地址是:http://www.barcodebakery.com/en/download,相关的版本大家请按照自己的PHP版本来定,当然如果使用其它编程语言【如.net或Node.js】,也可以。
PHP利用开源软件barcode来生成条形码 - sinsunson - 天朝布衣田中码农参上
2)相关压缩包的结构如下:
PHP利用开源软件barcode来生成条形码 - sinsunson - 天朝布衣田中码农参上
 A)class文件夹是已封装好生成条形码的类,只需要调用即可。
 B)index.php是一个可选择条件生成条形码的功能,是主程序的入口,而html文件夹则是具体提供的被引用的代码。
3)直接打开http://localhost/barcodegen.1d-php5.v5.2.1/时,用户体验可以体验功能,任意选择项,来生成对应的条形码。code39.php指的是指向默认的编码格式。
PHP利用开源软件barcode来生成条形码 - sinsunson - 天朝布衣田中码农参上
 4)http://localhost/barcodegen.1d-php5.v5.2.1/test_1D.php是另外一个例子,通过代码直接生成条形码。如果不提交text参数的话,就会设置默认值是HELLO。比如想要生成微信号superimagelove的条形码,就通过如下地址生成即可。
PHP利用开源软件barcode来生成条形码 - sinsunson - 天朝布衣田中码农参上
5)如果有需要调整,不使用BCGcode39,那么要手动调整下如下的参数。
PHP利用开源软件barcode来生成条形码 - sinsunson - 天朝布衣田中码农参上
当然你也可以按接收到的编码参数来生成,方法也很简单,通过修改test_1D.php文件来处理。

<?php
// Including all required classes
require_once('class/BCGFontFile.php');
require_once('class/BCGColor.php');
require_once('class/BCGDrawing.php');

//这里加入一个接收编码规则的参数
$code=isset($_GET['code']) ? $_GET['code'] : 'BCGcode39';

// Including the barcode technology
require_once('class/'.$code.'.barcode.php');

// Loading Font
$font = new BCGFontFile('./font/Arial.ttf', 18);

// Don't forget to sanitize user inputs
$text = isset($_GET['text']) ? $_GET['text'] : 'HELLO';

// The arguments are R, G, B for color.
$color_black = new BCGColor(0, 0, 0);
$color_white = new BCGColor(255, 255, 255);

$drawException = null;
try {
$code = new $code(); //类动态生成
$code->setScale(2); // Resolution
$code->setThickness(30); // Thickness
$code->setForegroundColor($color_black); // Color of bars
$code->setBackgroundColor($color_white); // Color of spaces
$code->setFont($font); // Font (or 0)
$code->parse($text); // Text
} catch(Exception $exception) {
$drawException = $exception;
}

/* Here is the list of the arguments
1 - Filename (empty : display on screen)
2 - Background color */
$drawing = new BCGDrawing('', $color_white);
if($drawException) {
$drawing->drawException($drawException);
} else {
$drawing->setBarcode($code);
$drawing->draw();
}

// Header that says it is an image (remove it if you save the barcode to a file)
header('Content-Type: image/png');
header('Content-Disposition: inline; filename="barcode.png"');

// Draw (or save) the image into PNG format.
$drawing->finish(BCGDrawing::IMG_FORMAT_PNG);
?>

访问的地址就是:http://localhost/barcodegen.1d-php5.v5.2.1/test_1D.php?text=superimagelove&code=BCGcode128,这里的BCGcode128就是另一种编码了,可选的编码都在如下目录里面。
PHP利用开源软件barcode来生成条形码 - sinsunson - 天朝布衣田中码农参上
6)生成的PNG图片如果需要验证的话,先将图片保存下来,直接去这个网站:http://www.onlinebarcodereader.com/,将图片上传就Ok了!
PHP利用开源软件barcode来生成条形码 - sinsunson - 天朝布衣田中码农参上
 这里显示的结果就是读出条形码中的内容,可以自行比对,不过这网站并不是所有条形码都会支持,大家要注意一下

  评论这张
 
阅读(0)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017