在一些生产制造行业条形码是必不可少的。比如,打印工作单、原材料出入库、成品出库发货等都需要扫描条形码进行数据采集。最近发现公司打印出的工作单上出现了条码,打印工单的程序是用PHP写的,于是乎看看源代码是怎么实现的。原来是通过一个生成Barcode的类将相应的数据转给该程序并生成JPG文件。
     自己在网上搜了搜实现Barcode的其他方法,找到一个国外的开源程序专门用来生成“一维条形码”。首先,复习一下条形码的相关知识。

条形码分类

一、按码制分类
1. UPC码
1973年,美国率先在国内的商业系统中应用于UPC码之后加拿大也在商业系统中采用UPC码。UPC码是一种长度固定的连续型数字式码制,其字符集为数字0~9。它采用四种元素宽度,每个条或空是1、2、3或4倍单位元素宽度。IPC码有两种类型,即UPC-A码和UPC-E码。

2. EAN码
1977年,欧洲经济共同体各国按照UPC码的标准制定了欧洲物品编码EAN码,与UPC码兼容,而且两者具有相同的符号体系。EAN码的字符编号结构与UPC码相同,也是长度固定的、连续型的数字式码制,其字符集是数字0~9。它采用四种元素宽度,每个条或空是1、2、3或4倍单位元素宽度。EAN码有两种类型,即EAN-13码和EAN-8码。

3. 交叉25码
交叉25码是一种长度可变的连续型自校验数字式码制,其字符集为数字0~9。采用两种元素宽度,每个条和空是宽或窄元素。编码字符个数为偶数,所有奇数位置上的数据以条编码,偶数位置上的数据以空编码。如果为奇数个数据编码,则在数据前补一位0,以使数据为偶数个数位。

4. 39码
39码是第一个字母数字式码制。1974年由Intermec公司推出。它是长度可比的离散型自校险字母数字式码制。其字符集为数字0—9,26个大写字母和7特殊字符(-、。、Space、/、%、¥),共43个字符。每个字符由9个元素组成,其中有5个条(2个宽条,3个窄条)和4个空(1个宽空,3个窄空),是一种离散码。

5. 库德巴码 
库德巴码(Code Bar)出现于1972年,是一种长度可变的连续型自校验数字式码制。其字符集为数字0—9和6个特殊字符(-、:、/、。、+、¥),共16个字符。常用于仓库、血库和航空快递包裹中。

6. 128码
128码出现于1981年,是一种长度可变的连续型自校验数字式码制。它采用四种元素宽度,每个字符由3个条和3个空,共11个单元元素宽度, 又称(11,3)码。它由106个不,同条形码字符,每个条形码字符有三种含义不同的字符集,分别为A、B、C。它使用这3个交替的字符集可将128个ASCII码编码。

7. 93码
93码是一种长度可变的连续型字母数字式码制。其字符集成为数字。0-9,26个大写字母和7个特殊字符(-、。、Space、/、+、%、¥)以及4个控制字符。每个字符由3个条和3个罕,共9个元素宽度。

8. 49码
49码是一种多行的连续型、长度可变的字母数字式码制。出现于1987年,主要用于小物品标签上的符号。采用多种元素宽度。其字符集为数字0-9,26个大写字母和7个特殊字符(-、。、Space、%、/、+、%、¥)、3个功能键(F1、 陀、F3)和3个变换字符,共49个字符。

9. 其他码制
除上述码外,还有其他的码制,例如25码出现于1977年,主要用于电子元器件标签;矩阵25码是11码的变形;Nixdorf码已被EAN码所取代Plessey码出现于1971年5月主要用于图书馆等。

二、按维数分类
1. 普通的一维条码
普通的一维条码自本问世以来,很快得到了普及并广泛应用。但是由于一维条码的信息容量很小,如商品上的条码仅能容13位的阿拉伯数字,更多的描述商品的信息只能依赖数据库的支持,离开了预先建立的数据库,这种条码就变成了无源之水,无本之木,因而条码的应用范围受到了一定的限制。

2. 二维条码
除具有普通条码的优点外,二维条码还具有信息容量大、可靠性高、保密防伪性强、易于制作、成本低等优点。<BR>美国Symbol公司于1991年正式推出名为PDF417的二维条码,简称为PDF417条码,即“便携式数据文件”。FDF417条码是一种高密度、高信息含量的便携式数据文件,是实现证件及卡片等大容量、高可靠性信息自动存储、携带并可用机器自动识读的理想手段。

3. 多维条码
进入20世纪80年代以来,人们围绕如何提高条形码符号的信息密度,进行了研究工作。多维条形码和集装箱条形码成为研究、以展与应用的方向。<BR>信息密度是描述条形码符号的一个重要参数据,即单位长度中可能编写的字母个数,通常记作:字母个数/cm。影响信息密度的主要因素是条、空结构和窄元系的宽度。<BR>128码和93码就是人们为提高密度而进行的成功的尝试。128码城1981年被推荐应用;而93码于1982年投入使用。这两种码的符号密度均比39码高将近30%。<BR>随着条形码技术的发展和条形码三制的种类不断增加,条形码的标准化显得愈来愈重要。为此,曾先后制定了军用标准1189;交叉25码、39码和Coda Bar码ANSI标准MH10.8M等。同时,一些行业也开始建立行业标准,以适应发展的需要。此后,戴维·阿利尔又研制出49码。这是一种非传统的条形码符号,它比以往的条形码符号具有更高的密度。特德·威廉姆斯(Ted Williams)GFI988推出16K码,该码的结构类似于49码,是一种比较新型的码制,适用于激光系统。

条形码实例

1. Codabar   Manual Reference

  • Supports: [0-9], [A-D], - $ : / . +
  • Must start and end with a letter
  • Contains an auto-checksum, no checksum number

2. Code 11   Manual Reference

  • Supports: [0-9], -
  • Rarely used
  • Contains auto-checksum numbers

3. Code 39   Manual Reference

  • Supports: [0-9], [A-Z], - . $ / + % [SPACE]
  • Really used, many uses
  • Contains a optional checksum
  • Resulting barcode is pretty big

4. Code 39 Extended   Manual Reference

  • Supports: [0-9], [A-Z], - . $ / + % [SPACE] + ASCII 0-127
  • The extension of this barcode is optional. You must specify your reader that you read Code 39 Extended.

5. Code 93   Manual Reference

  • Supports: [0-9], [A-Z], - . $ / + % [SPACE] + ASCII 0-127
  • Similar to Code 39 but less used
  • Supports ASCII 0-127 and is not optional like the Code 39
  • Bigger density

6. Code 128   Manual Reference

  • Supports: [0-9], [a-zA-Z], tous les characteres
  • Contains 3 tables to better encode data
  • Groups numbers by two for a better compression

7. EAN-8   Manual Reference

  • Supports: [0-9]
  • Encodes 7 numbers and a checksum number
  • It is the EAN-13 short version
  • You have to get a number with a license to use in the public

8. EAN-13   Manual Reference

  • Supports: [0-9]
  • Encodes 12 numbers with a checksum number
  • It is the UPC-A extension which adds the country code
  • You have to get a number with a license to use in the public

9. ISBN-10 / ISBN-13   Manual Reference

  • Supports: [0-9]
  • Based on EAN-13, used for books
  • You have to get a number with a license to use in the public

10. Interleaved 2 of 5   Manual Reference

  • Supports: [0-9]
  • Based on Standard 2 of 5
  • Optional checksum number

11. Standard 2 of 5   Manual Reference

  • Supports: [0-9]
  • Hard to read for readers because really low density
  • Optional checksum number

12. MSI Plessey   Manual Reference

  • Supports: [0-9]
  • Formerly used for inventory
  • Optional checksum number

13. UPC-A   Manual Reference

  • Supports: [0-9]
  • Encoded like EAN-13
  • Encodes 11 numbers with a checksum number
  • The numbers depends on what you sell
  • You have to get a number with a license to use in the public

14. UPC-E   Manual Reference

  • Supports: [0-9]
  • Short version of UPC-A
  • Encodes 7 numbers with a checksum number
  • The numbers depends on what you sell
  • You have to get a number with a license to use in the public

15. UPC Extension 2   Manual Reference

  • Supports: [0-9]
  • Contains 2 characters
  • Indicates more information on the product
  • Must be joined to a UPC or EAN symbol

16. UPC Extension 5   Manual Reference

  • Supports: [0-9]
  • Contains 5 characters
  • Usually indicates the suggested price of the product
  • Must be joined to a UPC or EAN symbol

17. PostNet   Manual Reference

  • Supports: [0-9]
  • Contains either 5, 9 or 11 numbers
  • Used to encode envelopes in United States

18. Other   Manual Reference

  • Create your own barcode
  • Add the text you want

参考资料:http://www.barcodephp.com/1d/overview.php

待续……

本文转自Gnie博客园博客,原文链接:http://www.cnblogs.com/gnielee/archive/2009/07/29/1533768.html,如需转载请自行联系原作者

PHP生成条形码 之一 条形码介绍相关推荐

  1. 生成打印条码_条码打印软件如何生成跳号条形码

    所谓跳号就是1跳到2然后再跳到3这样的流水码,有些人会把这种的流水数据称为跳号,今天就给大家介绍一下如何用中琅条码打印软件生成跳号条形码. 在条码打印软件中新建一个空白标签,选择打印机并自定义设置标签 ...

  2. c# 小票打印机打条形码_C#条形码的生成与打印

    本文主要介绍基于第三方类库BarcodeX制作条形码及打印方法 第一步:引用类库 第二步:定义一个打印的方法 /// /// 打印条形码方法 /// /// 为PrintDocument对象的Prin ...

  3. 如何生成偶数流水号条形码

    平时的标签制作过程中,很多时候需要用到条形码,如果是作为企业内部管理使用,条形码是可以自己编辑的.比如很多产品生产序号或者是编号都会用到流水号条形码.最近就有朋友向我们咨询,如果想要批量制作偶数流水号 ...

  4. asp.net 生成、解析条形码和二维码

    asp.net 生成.解析条形码和二维码 原文 asp.net 生成.解析条形码和二维码 一.条形码 一维码,俗称条形码,广泛的用于电子工业等行业.比如我们常见的书籍背面就会有条形码,通过扫描枪等设备 ...

  5. 【java】生成13位条形码(Ean-13码)

    [java]生成13位条形码(Ean-13码) 题目: 生成13位条形码 Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码. 例如:690123456789 计算其校验码的过程为: ...

  6. Java 生成13位条形码 Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码。

    package cn.zhang;import java.util.Scanner;public class Subject001 {/**生成13位条形码 Ean-13码规则:第十三位数字是前十二位 ...

  7. 生成13位条形码 Ean-13码规则: 第十三位数字是前十二位数字经过计算得到的校验码。

    public static void main(String[] args) {/** 生成13位条形码 Ean-13码规则: 第十三位数字是前十二位数字经过计算得到的校验码. 例如:69012345 ...

  8. java生成、识别条形码和二维码

    一.概述 使用 zxing 开源库 Zxing主要是Google出品的,用于识别一维码和二维码的第三方库 主要类: BitMatrix 位图矩阵 MultiFormatWriter 位图编写器 Mat ...

  9. python doc_Python文档生成工具pydoc使用介绍

    在Python中有很多很好的工具来生成字符串文档(docstring),比如说: epydoc.doxygen.sphinx,但始终觉得pydoc还是不错的工具,用法非常简单,功能也算不错,本文主要介 ...

  10. java条码识别技术_Java 生成、识别条形码

    条形码是由一定的字符,数字及符号组成,用以表达一组信息的图形标识符.它可以标出物品的商品名称.生产日期.图书分类号,邮件起止地点等.因而在商品流通.图书管理.邮政管理等许多领域得以广泛的应用.本文将通 ...

最新文章

  1. 独家 | 熵–数据科学初学者必知的关键概念(附链接)
  2. mysql seconds_behind_master_MySQL 复制延迟 Seconds_Behind_Master 究竟是如何计算的
  3. 解题:洛谷2093 JZPFAR
  4. c3p0 mysql maven_Maven+JSP+Servlet+C3P0+Mysql实现的音乐库管理系统
  5. 我抓到bit哥了,嘿嘿嘿(5)
  6. Ubuntu下安装Git以及Git帮助手册【转】
  7. 学python需要什么基础-学习Python需要哪些基础知识?
  8. knn约会_出色的在线约会预订系统应具备的5个功能
  9. 2019最新java实战项目资料
  10. c语言递归算法兔子问题,Java递归算法经典实例(经典兔子问题)
  11. 禅道类似软件_推荐几款不错的项目管理软件
  12. python插值算法_python插值算法
  13. Visual Studio Code 官方护眼主题绿豆沙颜色修改,让你的眼睛远离疲劳!
  14. scratch双语教师课件文档手册 1.初识scratch
  15. 2设置使用 Yocto 项目
  16. Python之浅谈exec函数
  17. 使用setoolkit克隆钓鱼网站时修改网页错误的解决方法
  18. Dev C++ 安装及使用方法教程-超详细
  19. NOIP2017+停课总结
  20. 微信阅读原文直接打开浏览器_点击链接打开微信再跳转到微信内部浏览器的解决方案...

热门文章

  1. 样条曲线(spline)
  2. mac下使用自带的svn客户端上传、下载文件到服务端
  3. [Matlab科学计算] 绘制B样条基函数
  4. 业内最小体积SOP8封装,带UART输出,高精度免校准计量芯片HLW8110
  5. 海康播放视频Demo
  6. oracle 存档终点修改,修改归档模式的存档终点 archive log list
  7. 安信可BT-02 Mesh组网的AT指令集
  8. YUV格式到底是什么?
  9. 详解Java中的Base64原理跟用法
  10. 【Makefile】简单的Makefile编写