img

Cognex移动条码SDK
PDF417

PDF417是什么?

PDF417(便携式数据文件,或PDF-417)是由Symbol Technologies(自被摩托罗拉收购后)于1990年推出的一种高容量、高安全的符号系统。严格来说,PDF417被分类为堆叠的线性条形码(结构类似于GS1数据库),尽管它通常被称为二维条形码,因为它使用多行和多列表示数据,如数据矩阵与大多数其他二维条形码不同,PDF417可以通过适当配置的激光扫描仪进行扫描。事实上,这是其主要设计目标之一。

PDF417条形码的大小和布局各不相同,最常见于矩形配置。以下是两个示例。两个符号编码的数据完全相同,但使用的布局选项不同:

pages_PDF417_examples.png

一个PDF417符号由3到90行堆叠的条形/空间模式组成。每行包括以下内容:

  • 启动模式;
  • 左行指示器;
  • 1至30个数据字符;
  • 右行指示器;
  • 停止模式。

每行中的数据字符数通常称为数据列在符号中。在上面的示例中,第一个符号有16行和1个数据列,而第二个符号只有4行但有5个数据列。以下是为清晰起见绘制的示例:

pages_PDF417_diagramed.png

符号字符

每个符号字符由4个条和4个空格组成,总宽度为17个模块(因此在符号系统名称中起源于417)。唯一的例外是停止符号,它是19个模块。每个条/空格的宽度可以是1到6个模块。PDF417中的符号字符通常称为码字,尤其是用于表示符号数据部分的符号。

PDF417的规范要求符号字符的高度至少为模块宽度的3倍,尽管在某些情况下使用了2X甚至1X。激光扫描仪通常无法读取模块高度小于3倍的符号。

PDF417使用三种不同的符号集,称为; 在每个簇中,为每个字符分配一个介于0和928之间的值。集群编号为0、3和6。例如,这里是码字0,它将在每个集群中表示(大大放大):

pages_PDF417_clusters.png

实际上,可以使用以下公式从字符模式中导出簇号:

集群=(b1-b2+b3-b4+9)模块9

哪里:

b1=第一根钢筋的宽度

B2 =第二条横条的宽度

B3 =第三条横条的宽度

b4=第四根钢筋的宽度

mod 9=模除法(除法的整数余数)

例如,下面是群集3字符的方程式:

集群编号=(5-1+1-2+9)模块9

簇编号=12模9(12/9=1剩余3)

群集编号=3

行编码

PDF417符号的每一行使用单个集群中的符号字符。符号的第一行使用集群0;第二排簇3;第三排6组;第四行再次从集群0开始。由于给定行中的所有符号字符都来自同一簇,且相邻行始终使用不同簇,因此扫描设备可以检测扫描何时从一行交叉到另一行(尤其是激光等线性扫描仪)。

行中的第一个和最后一个字符是开始和停止模式,而第二个字符和第二个到最后一个字符分别是左行指示符和右行指示符。这些值是根据集群、行号、总行数、数据列数和正在使用的纠错级别来计算的d(见下面的误差修正)使用以下公式:

集群

左行指示器

右行指示器

0

30x+y

30x+v

3.

30x+z

30x+y

6.

30x+v

30x+z

哪里:

x=(行号-1)/3

y=(行数–1)/3

z=(错误纠正级别)*3+(行数–1)模式3

v=数据列数–1

数据编码

像许多高容量条形码符号一样,PDF417使用复杂的数据压缩技术;条形码中存储的数据字符与所用符号字符的条形/空格模式之间不存在一一对应关系。

通常,数据可以采用以下三种模式之一进行编码:

  • 文本压缩模式–允许在每个码字中存储两个字母数字字符。文本压缩模式有四个子模式:alpha、lower、mixed和标点符号(基本上是4个不同的字符集)。
  • 字节压缩模式–允许使用从基256到基900的转换将6个字节的组存储在5个码字中。字节压缩模式通常用于二进制数据。这是PDF417中效率最低的数据压缩模式。
  • 数字压缩模式–使用以10为基数到以900为基数的转换,此模式可以将几乎3个数字打包成一个码字。此模式对13个或更多数字的字符串最有效。少于13个数字的数字字符串通常使用文本压缩模式进行编码。

创建PDF417符号时,使用复杂的软件算法分析要编码的数据,并使用最合适的压缩模式,通常在符号内的模式之间切换。其他条形码符号,如数据矩阵,阿兹特克二维码(甚至代码128以更简单的方式)使用这种方法。

使用最低纠错级别的单个PDF417符号最多可存储1850个文本字符、2710个数字或1108字节的二进制数据。

纠错码字

与同时代的二维条形码一样,PDF417使用里德-所罗门误差校正. 将纠错码字(ECC)添加到条形码以纠正擦除(码字位置已知但不可解码)和错误(码字位置和值未知);向符号添加的ECC越多,可以纠正的擦除和错误就越多。

PDF417使用9级ECC,最低级别(0)添加两个ECC码字。下表列出了每个级别的纠错码字数:

纠错水平

纠错码字数

0

2.

1.

4.

2.

8.

3.

16

4.

32

5.

64

6.

128

7.

256

8.

512

截断PDF417

截断PDF417是PDF417的一种变体,它消除了右行指示器,并将停止模式减少为单个模块条。因此,截断的PDF417符号更小,但也更容易误读。截断的PDF417应仅在符号不太可能损坏的环境中使用。

下面是我们的示例,格式为截断的PDF417符号:

pages_PDF417_truncated.png

宏PDF417

宏PDF417是PDF417的数据扩展,它允许读卡器将多个符号连接在一起,以形成单个更大的消息。向一系列链接的PDF417符号的数据添加特殊控制块;控制块包含段索引、文件ID和一些可选信息,如文件名、时间戳、文件大小、发件人和收件人。最多可以连接99999个PDF417符号以形成单个消息(文件)。

为什么要使用PDF417?

PDF417最适合于需要高数据容量和密度而不牺牲数据完整性的应用。PDF417是为数不多的可以被激光扫描仪读取的二维条形码之一。

谁使用PDF417?

PDF417已经进入了许多行业并采用了一些标准。以下是一些:西盟体育betway

  • 联邦快递在其装运标签上使用PDF417作为包裹交付信息;
  • PDF417可用于为美国邮政服务印刷邮资;
  • 在美国,大多数机动车部门都采用了AAMVA(美国机动车管理者协会)驾驶执照和身份证标准,其中包括可由任何合规州扫描和处理的标准PDF417条形码;
  • 条形码登机牌(BCBP)是200多家航空公司使用的标准,该标准将PDF417在打印的航空公司登机牌上的使用标准化。

我们如何帮助开发人员使用PDF417?

科涅克斯移动电话条形码扫描仪SDK支持PDF417检测,使开发人员能够收集相关的工作流和应用程序数据。您可以通过在Cognex Mobile Barcode上注册免费下载SDK开发者网络。此外,条形码扫描仪SDK支持广泛的符号学满足您不断增长的发展需求。