翻譯|其它|編輯:莫成敏|2019-11-05 11:14:38.393|閱讀 750 次
概述:Dynamsoft Barcode Reader SDK是一款多功能的條碼讀取控件。本文介紹了如何解碼PDF417條碼。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Dynamsoft Barcode Reader SDK一款多功能的條碼讀取控件,只需要幾行代碼就可以將條碼讀取功能嵌入到Web或桌面應(yīng)用程序。它支持讀取所有主要的1D和2D條形碼,僅需使用幾行代碼即可實(shí)現(xiàn)。本文主要介紹如何解碼PDF417條碼。
點(diǎn)擊下載Dynamsoft Barcode Reader SDK試用版
PDF417條碼是一種堆疊式、可變長(zhǎng)度、雙向2D條碼。它是使用最廣泛的2D條碼之一,最常見于物流、運(yùn)輸(登機(jī)證)、政府識(shí)別(駕駛執(zhí)照和身份證)、庫(kù)存和文件管理(郵政包裹)中。
PDF417代碼的一些主要功能是:
編碼所有128個(gè)ASCII字符和擴(kuò)展字符
高數(shù)據(jù)容量——最多可容納1850個(gè)字母數(shù)字字符,超過(guò)2700位數(shù)字或大約1100字節(jié)的數(shù)據(jù)
公共領(lǐng)域格式,無(wú)需使用許可
糾錯(cuò)能力0 – 8
通過(guò)將PDF417條形碼分為節(jié)、行、列和數(shù)據(jù)字來(lái)理解。在本文中,我們將解構(gòu)PDF417符號(hào)并識(shí)別其所有元素,并向您展示如何解碼PDF417條碼。
欄目
PDF417條碼由許多模塊組成,但可以分為三個(gè)不同的部分。每個(gè)模塊均以純黑色列開始,并以純白色列結(jié)束,因此您可以直觀地看到每個(gè)模塊的起點(diǎn)和終點(diǎn)。在條形碼的兩側(cè)也有空白頁(yè)邊空白,稱為安靜區(qū)。這用于對(duì)條形碼進(jìn)行本地化,這有助于條形碼掃描器識(shí)別條形碼的開始和停止位置,并防止掃描可能圍繞條形碼的其他信息。PDF417符號(hào)的格式如下:
安靜區(qū)域
開始模式
離開指示器
數(shù)據(jù)碼字
正確的指示器
停止模式
安靜區(qū)域
從駕駛執(zhí)照PDF417中提取數(shù)據(jù)
開始和停止模式
由一組黑白垂直條和空格組成,開始和停止模式指示條形碼的開始和結(jié)束區(qū)域。它們可幫助條形碼掃描儀找到條形碼,但不包含任何數(shù)據(jù)。
左右指示器
左右指示器不包含任何文本數(shù)據(jù),而是包含有關(guān)條形碼的信息,例如條形碼具有多少行、糾錯(cuò)級(jí)別等。
數(shù)據(jù)碼字
數(shù)據(jù)代碼字部分中的數(shù)字、字母或其他符號(hào)以條形和空格的群集模式進(jìn)行解碼,每個(gè)條形和空格由純白色列分隔。在上圖中,顯示了兩個(gè)部分。可能只有一個(gè)或多達(dá)30個(gè)數(shù)據(jù)代碼字簇。PDF417條碼的大小取決于編碼的數(shù)據(jù)量。
行
PDF417條碼由行組成。它必須至少有三行,最多90行,每行都像一個(gè)小的線性條形碼。在上圖中,顯示了八行。每行具有相同的寬度,并具有相同數(shù)量的代碼字。
列
每個(gè)模塊由17列組成。如前所述,每個(gè)模塊以純黑色列開始,以純白色列結(jié)束。
數(shù)據(jù)字
每個(gè)數(shù)據(jù)字段長(zhǎng)17個(gè)單元,由4個(gè)黑條和4個(gè)空格組成,這就是名稱PDF417的來(lái)源——便攜式數(shù)據(jù)文件(PDF)+數(shù)據(jù)字模式由4個(gè)黑白單元組成,并且長(zhǎng)17個(gè)單元格。從左到右,從上到下讀取每個(gè)數(shù)據(jù)字。
Millennial Vision,Inc.選擇Dynamsoft條碼讀取器來(lái)自動(dòng)填充駕駛執(zhí)照數(shù)據(jù)
編碼方式
PDF417使用基數(shù)929編碼,其中每個(gè)數(shù)據(jù)字代表0到928之間的值。該值由黑白單元格的序列確定。在上圖中,我們?cè)谝粋€(gè)數(shù)據(jù)字中看到一個(gè)序列,該序列包括:1黑色,4白色,2黑色,3白色,2黑色,2白色,1黑色和2白色組成。這將創(chuàng)建一個(gè)14232212的值。
注意,包括開始的黑色單元格和結(jié)束的白色單元格。接下來(lái),我們可以在PDF417 Codeword Combo網(wǎng)站中查找序列,該站點(diǎn)列出了所有929個(gè)編碼值。我們可以使用CTRL F搜索我們的序列。
現(xiàn)在我們找到了序列,我們看到它等于900的值,這意味著我們正在執(zhí)行文本編碼。那么這是什么意思?
在929個(gè)可用代碼字中,0-900用于數(shù)據(jù),其他28個(gè)用于定義條形碼的特殊功能。通常,PDF417僅用于文本。
無(wú)論序列號(hào)是多少,都需要應(yīng)用以下數(shù)學(xué)公式來(lái)提取數(shù)據(jù)塊。
注意:F代表第一個(gè)字符,S代表第二個(gè)字符。
F =#MOD 30
S =(#– F)/ 30
注意:在計(jì)算中,MOD命令是一個(gè)數(shù)字除以另一個(gè)后的余數(shù)。
在我們的示例中,我們的數(shù)據(jù)字之一是733。因此,我們采用733 MOD 30,然后得出13。
接下來(lái),我們采用數(shù)字733減去13,然后除以30,即24。
現(xiàn)在,我們可以獲取這些數(shù)字,并在PDF417文本解碼器表中查找它們以解密編碼數(shù)據(jù)。
在上圖中,請(qǐng)注意有五列:
Number
Alpha
Lower
Mixed
Punctuation
默認(rèn)情況下,PDF417在“Alpha”列中啟動(dòng)。因此,當(dāng)我們將公式應(yīng)用于數(shù)據(jù)碼字時(shí),我們得到的第一個(gè)字符為5,根據(jù)我們的表格,該字符為大寫D。
某些字符(26 – 29)轉(zhuǎn)換為特殊功能。在我們的示例中,下一個(gè)字符是27,等于ll。使用該表,我們看到ll =鎖存器降低。這意味著我們需要將第一個(gè)字母之后的所有內(nèi)容都鎖存到下一列(即小寫字母列)。
當(dāng)我們將公式應(yīng)用于所有數(shù)據(jù)代碼字時(shí),我們便可以解密PDF417中的文本。在我們的示例中,PDF417條碼顯示為“Dynamsoft”。
錯(cuò)誤修正
EC級(jí) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
生成的EC碼字 | 2 | 4 | 6 | 8 | 16 | 32 | 64 | 128 | 512 |
數(shù)據(jù)碼字 | 1-40 | 41-160 | 161-320 | 321-863 | |||||
數(shù)據(jù)字節(jié)編碼 | 1-56 | 57-192 | 193-384 | 385-1035 |
PDF417使用Reed–Solomon糾錯(cuò)技術(shù),該技術(shù)已增加了冗余度,從而確保即使損壞了條形碼也仍可讀取。糾錯(cuò)級(jí)別的范圍是0到8。糾錯(cuò)級(jí)別越高,條形碼的冗余度就越高。但是,用于糾錯(cuò)的區(qū)域越多,意味著可以將更少的數(shù)據(jù)編碼到條形碼中。根據(jù)AIM標(biāo)準(zhǔn),建議最小錯(cuò)誤糾正級(jí)別為2。
下表顯示了添加到PDF417條形碼中的糾錯(cuò)碼字的數(shù)量以及AIM糾錯(cuò)建議。
要查看Dynamsoft條碼閱讀器在特定條碼情況下的性能,請(qǐng)下載Dynamsoft Barcode Reader SDK免費(fèi)版~
想要購(gòu)買該產(chǎn)品正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: