论文部分内容阅读
摘 要:近年来,国内在大力进行条形码推广应用的同时也积极跟踪国外技术发展,进行条形码理论基础和关键技术的研究。本文提出的二维条码数据生成与识别系统己通过测试,符合二维条码生成和识别的标准。利用这个现有的条码生成与识别系统通过简单的二次开发便可完成适合实际需求的应用系统,从而缩短二次开发的周期。
关键词:条码应用;程序设计;实现
中图分类号:TP391.44 文献标识码:A
Design and Implementation of PDF417 Barcode Application System
LIU Fang,YAN Zhi-yong
(Xinyu College,Jiangxi Xinyu 338000)
Key words: barcode application system;design;implementation
1 前言
条码最早出现在40年代,但得到实际应用和发展还是在70年代左右。现在世界上的各个国家和地区都已普遍使用条码技术,而且它正在快速的向世界各地推广,其应用领域越来越广泛,并逐步渗透到许多技术领域。
二维条码PDF417技术作为一种崭新的自动识别技术,从诞生之日起就受到广泛的关注。经过几年的发展,该技术已广泛应用在国防、公共安全、交通运输、医疗保健、工业、商业等领域。
2 PDF417条码的结构
PDF417条码符号是一个多行结构。符号顶部和低部为空白区,上下空白区之间为多行结构,每行数据符号字符数相同,行与行左右对齐直接连接,其最小行数为3行,最大为90行。每行构成如图1所示:
每一层包括:a)左空白区;b)起始符;c)左行指示符号字符;d)1到30个数据符号字符;e)右行指示符号字符;f)终止符g)右空白区。
3 PDF417条码的编码和译码原理
3.1PDF417条码编码码原理
PDF417条码码字集包含929个码字,码字的取值范围为0-928。用遵循下列规则:码字0-899:根据当前的压缩模式和GL工解释,用于表示数据;码字900-928:在每一模式中,用于具有特定目的符号字符的表示;码字900,901,902,913和924用于模式标识;码字925,926,927用于GLI;码字922,923,928用于宏四一七条码;码字921用于阅读器初始化;码字903-912,914-920保留待用。
条码符号字符由三个簇构成,每一簇包含以不同的条、空形式表示的所有929个471条码的码字。在每一簇中,每一符号字符对应唯一的码字,其范围为0-928。417条码使用簇号0,3,6。簇号的定义适用于所有的四一七条码符号字符。417条码的每行只使用一个簇中的符号字符。同一簇每三行重复一次。第一行使用第0簇,第二行使用第3簇,第三行使用第6簇,第四行使用第0簇,以此类推。行号由上往下递增,最上一行行号为1。
对于特定的符号字符,其簇号由下式确定:
簇号=(bl-b2+b3-b4)modg
式中:b1,b2,b3,b4分别表示自左向右的四个条的模块数。
例:对每一特定的行,使用的符号字符的簇号由下式计算:簇号=[(行号-1)mod3]*3
3.2PDF417条码译码原理
PDF417条码的译码算法对于实用PDF417二维条码系统来说,不仅需要编码部分,还应包含译码部分。理论上,译码是编码的逆过程,有了译码程序不仅可以识读条码,还可以检测编码的正确性,通过专门的条码扫描器,将PDF417条码图像转换为计算机可处理的数据信息;再对这些数据信息按Reed-Solomon错误控制码算法进行纠错译码;然后通过识读模式锁定或模式转移码字,对纠错后的数据进行相应的译码;最后实现全部数据的还原,译码结束。
PDF417条码码字集包含929个码字:0-928。所谓码字集即一种条形码制中所给定的数据字符的范围。
为了有效地压缩并表示数据,PDF417采用三种数据压缩模式设置来组成字符集:文本压缩模式(TC)、字节压缩模式(BC)、数字压缩模式(NC)。
4 PDF417条码应用系统程序设计与实现
在整个系统中,采用手工计算,过程繁琐,所以为了方便实现PDF417码的编码和译利用VC++编程实现即F417码的功能是相当有重要意义和实用价值的。
编码函数为:
Private aTiRuZ. PDF417.BareodePDF417bareodePDF4171;
Private System..System.Windows.Forms.Button button1;
Private System..System.Windows.Forms.Button button2;
Private System..System.Windows.Forms.Button button3;
Private System..System.Windows.Forms.TextBox textBox1;
Private System..System.Windows.Forms.SaveFileDialog saveFileDialog1;
文本压缩模式的译码函数为:
void CPDF417ReaderView::OnTextComPress ( int*Tc,int k;CString result),
voidCPDF417ReaderView: :OnAIPha_Decode( int*Va,int k,ini &n),
oidCPDF417ReaderView: :OnLower_Decode( int*Va,int k,int &n),
voidCPDF417ReaderView: :OnMixed_Decode( int*Va,int k,int &n),
voidCPDF417ReaderView: :OnPunc_Decode( int*Va,int k,int &n)。
显示函数为:
voidCPDF417ReaderView: :onAIPha_isPlay(ini decode),
voidCPDF417ReaderView::OnLower_DisPlay(int decode),
voidCPDF417ReaderView: :OnMixed_DisPlay(int decode),
voidCPDF417ReaderView: :OnPunc_DisPlay(int decode)
5 结束语
二维条形码的研制之所以能引起国内外条形码技术领域学者专家的关注,其根本原因是作为信息自动识别处理的条形码应提高其信息密度,从而才能在当今社会起到充分的信息交换媒介的作用。二维条形码不仅可以像一维条形码那样用在一般产品上,而且在微小型产品、自动生产线上的产品识别等方面更具有独特优势。二维条形码的应用深度和广度将在条形码技术发展中起着重要的更新换代的作用。
关键词:条码应用;程序设计;实现
中图分类号:TP391.44 文献标识码:A
Design and Implementation of PDF417 Barcode Application System
LIU Fang,YAN Zhi-yong
(Xinyu College,Jiangxi Xinyu 338000)
Key words: barcode application system;design;implementation
1 前言
条码最早出现在40年代,但得到实际应用和发展还是在70年代左右。现在世界上的各个国家和地区都已普遍使用条码技术,而且它正在快速的向世界各地推广,其应用领域越来越广泛,并逐步渗透到许多技术领域。
二维条码PDF417技术作为一种崭新的自动识别技术,从诞生之日起就受到广泛的关注。经过几年的发展,该技术已广泛应用在国防、公共安全、交通运输、医疗保健、工业、商业等领域。
2 PDF417条码的结构
PDF417条码符号是一个多行结构。符号顶部和低部为空白区,上下空白区之间为多行结构,每行数据符号字符数相同,行与行左右对齐直接连接,其最小行数为3行,最大为90行。每行构成如图1所示:
每一层包括:a)左空白区;b)起始符;c)左行指示符号字符;d)1到30个数据符号字符;e)右行指示符号字符;f)终止符g)右空白区。
3 PDF417条码的编码和译码原理
3.1PDF417条码编码码原理
PDF417条码码字集包含929个码字,码字的取值范围为0-928。用遵循下列规则:码字0-899:根据当前的压缩模式和GL工解释,用于表示数据;码字900-928:在每一模式中,用于具有特定目的符号字符的表示;码字900,901,902,913和924用于模式标识;码字925,926,927用于GLI;码字922,923,928用于宏四一七条码;码字921用于阅读器初始化;码字903-912,914-920保留待用。
条码符号字符由三个簇构成,每一簇包含以不同的条、空形式表示的所有929个471条码的码字。在每一簇中,每一符号字符对应唯一的码字,其范围为0-928。417条码使用簇号0,3,6。簇号的定义适用于所有的四一七条码符号字符。417条码的每行只使用一个簇中的符号字符。同一簇每三行重复一次。第一行使用第0簇,第二行使用第3簇,第三行使用第6簇,第四行使用第0簇,以此类推。行号由上往下递增,最上一行行号为1。
对于特定的符号字符,其簇号由下式确定:
簇号=(bl-b2+b3-b4)modg
式中:b1,b2,b3,b4分别表示自左向右的四个条的模块数。
例:对每一特定的行,使用的符号字符的簇号由下式计算:簇号=[(行号-1)mod3]*3
3.2PDF417条码译码原理
PDF417条码的译码算法对于实用PDF417二维条码系统来说,不仅需要编码部分,还应包含译码部分。理论上,译码是编码的逆过程,有了译码程序不仅可以识读条码,还可以检测编码的正确性,通过专门的条码扫描器,将PDF417条码图像转换为计算机可处理的数据信息;再对这些数据信息按Reed-Solomon错误控制码算法进行纠错译码;然后通过识读模式锁定或模式转移码字,对纠错后的数据进行相应的译码;最后实现全部数据的还原,译码结束。
PDF417条码码字集包含929个码字:0-928。所谓码字集即一种条形码制中所给定的数据字符的范围。
为了有效地压缩并表示数据,PDF417采用三种数据压缩模式设置来组成字符集:文本压缩模式(TC)、字节压缩模式(BC)、数字压缩模式(NC)。
4 PDF417条码应用系统程序设计与实现
在整个系统中,采用手工计算,过程繁琐,所以为了方便实现PDF417码的编码和译利用VC++编程实现即F417码的功能是相当有重要意义和实用价值的。
编码函数为:
Private aTiRuZ. PDF417.BareodePDF417bareodePDF4171;
Private System..System.Windows.Forms.Button button1;
Private System..System.Windows.Forms.Button button2;
Private System..System.Windows.Forms.Button button3;
Private System..System.Windows.Forms.TextBox textBox1;
Private System..System.Windows.Forms.SaveFileDialog saveFileDialog1;
文本压缩模式的译码函数为:
void CPDF417ReaderView::OnTextComPress ( int*Tc,int k;CString result),
voidCPDF417ReaderView: :OnAIPha_Decode( int*Va,int k,ini &n),
oidCPDF417ReaderView: :OnLower_Decode( int*Va,int k,int &n),
voidCPDF417ReaderView: :OnMixed_Decode( int*Va,int k,int &n),
voidCPDF417ReaderView: :OnPunc_Decode( int*Va,int k,int &n)。
显示函数为:
voidCPDF417ReaderView: :onAIPha_isPlay(ini decode),
voidCPDF417ReaderView::OnLower_DisPlay(int decode),
voidCPDF417ReaderView: :OnMixed_DisPlay(int decode),
voidCPDF417ReaderView: :OnPunc_DisPlay(int decode)
5 结束语
二维条形码的研制之所以能引起国内外条形码技术领域学者专家的关注,其根本原因是作为信息自动识别处理的条形码应提高其信息密度,从而才能在当今社会起到充分的信息交换媒介的作用。二维条形码不仅可以像一维条形码那样用在一般产品上,而且在微小型产品、自动生产线上的产品识别等方面更具有独特优势。二维条形码的应用深度和广度将在条形码技术发展中起着重要的更新换代的作用。