`
ydbc
  • 浏览: 719139 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

二维码 PDF417

 
阅读更多
<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>

PDF417二维条码


<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>每一个PDF417码是由3~90横列堆叠而成,而为了扫瞄方便,其四周皆有静空区,静空区分为水平静空区与垂直静空区,至少应为0.020

<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} a:link {} --> </style>

其中每一层都包括下列五个部份:

  1. 起始码
     

  2. 左标区:在起始码後面,为一指示符号字元。
     

  3. 资料区:可容纳1~30个资料字元。
     

  4. 右标区:在资料区的後面,为一指示符号字元。
     

  5. 结束码:在横列之最右边。

除了起始码和结束码外,左标区、资料区和右标区的组成字元皆可称为字码(Codeword),每一个字码由17个模组(Modules)所构成,每一个字码又可分成4线条(或黑线)4空白(或白线),每个线条至多不能超过6个模组宽。每个417码因资料大小不同,其行数及每行的资料模组数与字码数都可以从130不等。字码的组成如图所示。



PDF417二维条码的尺寸

因为符号的组合较有弹性,每一个PDF417二维条码可因应不同的实体设备印成不同的长宽比例与密度,以适应印刷条件及扫瞄条件的要求。其中每个模组宽XPDF417码中最重要的尺寸之一,X值的最小限制为0.0075英寸(0.191mm),在同一个条码符号中,X的值是固定不变的。

PDF417的最小高度与长度可由下列算式算出: 

W(17C69)X2Q

HR×Y2Q 

其中:

W=条码宽度,H=条码高度,X=条码模组宽,Y=层数

C=每层符号字元的总数(含左右标区)R=层高,Q=静空区大小


编码原理

 计算机编码过程就是将可读信息转换成用于绘制条码的码字,然后加上必要的附加信息。其流程为:运用编码算法将有用信息转换成PDF417码字,再通过数据库查询把码字转换成对应的条空相间的符号字符,最后在计算机上将那些层层相叠的条空绘出,即二维条形码图像。

<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>


符号字符簇及计算
  417条码有三个互不相交的符号字符簇,每个簇都有928个不同的组合的符号字符对应着不同的码字。相邻的行用不同的簇的符号字符。这样,即使不同分隔条译码器也能分辨出扫描是否通过行之间的边界。417条码使用的簇号只有三个,即第0簇,第3簇,第6簇。

每行只使用同一簇中的符号字符。同一簇每三行重复一次。第一行使用第0簇的符号字符,第二行使用第3簇的符号字符,第三行使用第6簇的符号字符,第四行又重复使用第一行的内容,余此类推。行号由上至下递增,最上一行为第一行。

对于一个特定的符号字符,其簇号由下式确定:簇号=(b1-b2+b3-b4+9)mod9例如对图中的符号字符,其簇号=(5-1+1-2+9)mod9=3

对于每一个特定的行使用的符号字符的簇号由下式确定:簇号=(行号-1)mod3×3



左右行指示符号的值确定
  每行有行左指示并以行右指示为结束,指示的字符值依赖于特殊的行号,总行数为390行,总列数为130列,行的指示值如下:



  这里xi=INT(行号-1)/3] i=1,2……90
    y=INT(行数-1)/3
    z=(错误纠正级别)*3+(行数-1)mod3
    v=数据区中的列数减1
    ci=i行的簇号


<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} a:link {} --> </style>

二维码PDF417 的编码

PDF417的编码分为数据码字编码、错误纠正码字编码、前后行指示符编码3个部分。

3种数据压缩模式:文本压缩模式(TC)、字节压缩模式(BC)、数字压缩模式(NC)。

通过应用模式锁定和转移码字,可用三种压缩模式中的一种来编码,对三个符号簇中的任何一个序列,每个符号都赋予0928中的一个值,表示如下:

用途

0899

目前的压缩方式和GLI解释的编码数据

900

锁住TC模式

901

锁住BC模式(编码的字节数不是6的倍数)

902

锁住NC模式

913

把下一个码字切入BC模式

922923928

用于MacroPDF 417

921

读出设备初始化

903912914920

预留将来用

模式锁定码字是用于由一种模式转换到另一种模式时,它在下次模式更换之前一直有效。

模式转移只对转换后的第一个码字有效。

PDF4170


1 文本压缩模式
  在文本压缩模式中有四种子模式即大写字母型模式;小写字母型模式;混合型模式;标点型模式。这四种子模式中定义了30个字符值为029。两个文本字符可编码成一个417字符,每个417符号值等于[(30×H)+L],其中H是第一个文本字符,L是第二个文本字符。

例如字符串“Bc:401”可以编码为字符序列B,ll,c,:,ml,4,0,1

查表找出对应值(1,27,2,28,14,4,0,1

2个一组分为(1,27),(2,28),(14,4),(0,1

符号字符的字码为(1*30+27),(2*30+28),(14*30+4),(0*30+1

57),(88),(424),(1

然后用符号字符表示

2 字节压缩模式
  利用字节压缩模式可以把一系列的字节压缩成417的码字。这里主要利用了基数256到基数900的转换。如果压缩的字节数是6的倍数,则根据模式锁定在924来处理编码数据,按照从左到右的顺序,通过基数256到基数900的转换,6个字节被编译成5个码字。如果压缩的字节数不是6的倍数,则码字前导字节是901,对于被6整除多剩余的字节,每个字节对应一个码字,然后逐字节用码字表示。

6个字节A1,A2,A3,A4,A5,A6转换为5个码字S1S2S3S4S5

A1 *256^5 + A2 * 256^4 + A3 * 256^3 + A4 * 256^2 + A5 * 256^1 + A6 *256^0 =

S1 *900^4 + S2 * 900^3 + S3 * 900^2 + S4 * 900^1 + S5 * 900^0

A1,A2,A3,A4,A5,A6, S1S2S3S4S5全部以10进制带入。



123456

1 *256^5 + 2 * 256^4 + 3 * 256^3 + 4 * 256^2 + 5 * 256^1 + 6 * 256^0 =

1* 900^4 + 620* 900^3 + 89* 900^2 + 74* 900^1 + 864* 900^0

查表确定符号字符
3 数字压缩模式
  利用基数10至基数900的转换,数字压缩模式能够把3个十进制的数压缩成一个417的字符,十位数字序列用下面的代数编码:

1.将数字分成44位为一组,最后一组可以小于44位;

2.对每组,在前面数字加入“1”,然后进行10900的基数转换。

例:“1000213298174002”,由于是15位,小于44位,只能成为一组,在前面导入1,实行10900的转换。
  1000213298174002=1×9005+624×9004+434×9003+632×9002+282×900+202,所以417条码的编码序列是(1624434634282202)

查表确定符号字符


417条码符号的型号是矩形,当码字的总数不能正好填充一个矩形时,用码字900作为虚拟码字填充,必须放在错误纠正码字前。


PDF417二维条码的错误纠正能力

PDF417二维条码的一个重要特性是其自动纠正错误的能力较高,不过PDF417的错误纠正能力与每个条码可存放的资料量有关,PDF417码将错误复原分为9个等级,其值从08,级数愈高,错误纠正能力愈强,但可存放资料量就愈少,一般建议编入至少10%的检查字码。资料存放量与错误纠正等级的关系如表1所示。表2则建议不同的字数所适用的错误纠正等级。

最大储存量(错误纠正等级为0)为每个符号表示1850个大小写字母或2710个数字或1108个字节



1可存放资料量与错误纠正等级对照表

错误纠正等级

纠正码数

可存资料量(位元)

自动设定

64

1024

0

2

1108

1

4

1106

2

8

1101

3

16

1092

4

32

1072

5

64

1024

6

128

957

7

256

804

8

512

496

2PDF417的建议错误纠正等级

资料字码数

错误纠正等级

1~40

2

40~160

3

161~320

4

321~863

5



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics