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