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