繁體中文

文字與日常工具·二維碼與條碼工具包

Code 128 代碼集 A、B 和 C:為什麼數字會使條碼更短

· 工作原理

編碼 列印 開發人員工作流程

一個長混合 Code 128 模式旁邊有一個緊湊的數字模式
原始 ToolAcre 向量圖

解釋三個 Code 128 代碼集、代碼集 C 如何為每個符號打包兩位數字,以及為什麼純數字標籤比混合標籤明顯窄。

不適合標籤的條碼 - 字元選擇(而不僅僅是字體大小)如何控制 Code 128 符號的寬度

Code 128 寬度由發出的符號序列控制,而不是透過縮小標題字體來控制。 ToolAcre 的測試表明,一串數字的編碼比類似大小的字母的編碼更緊湊,因為自動編碼器可以使用成對的數字。

標籤設計者可以直接測量結果,因為 `generateCode128` 使用二進位模式傳回 `moduleCount`。當一個字串允許配對數字而另一個字串需要單一字元或集合變更時,兩個字元長度相等的字串可以具有不同的模組計數。匯出的寬度還包括固定的安靜區域,因此擠壓標題或更改其字體不會減少條形本身。

一張表中的代碼集 A、B 和 C — 控製字元和大寫、大寫和小寫以及數字對

這三個代碼集涵蓋了 Code 128 指令集的不同部分:A 對於大寫字母和控制項很有用,B 涵蓋可列印的大小寫混合文字,C 表示十進制數字對。 ToolAcre 不會要求使用者手動選擇一組。

ToolAcre 有意隐藏手動設置選擇,因為自動編碼器具有完整的輸入並可以一致地選擇轉換。這避免了用戶强制將字母設置為 C 或錯誤地將面向控制的普通文字設置為 UI。邊界同樣重要:自動選擇會优化有效的 ASCII 字符串,但它不會音譯带重音的字母或將 Code 128 扩展到代碼点 0 到 127 之外。

為什么代碼集 C 將數字游程的宽度减半 - 每两位數字一個符号,以及奇數位計數會發生什么

集合 C 將每一對完整的數字轉換為資料符號,因此長偶數長度的數字運行需要更少的符號。對於奇數計數,編碼器必須為不匹配的數字保留或延遲集合 C,從而使準確的結果取決於自動分段。

奇數執行演示了“每個符号两位數字”快捷方式的限制。在 `12345` 中,最後的數字不能形成 set-C 對,因此編碼器必須通過另一種策略和任何轉換開銷來解决它。使用 `A` 作為執行前綴會新增另一個非配對字元。產生這两個值,而不是根據六個顯示的字符估計宽度,因為分段决策是在發出的模塊中表示的,而不是在標題中表示的。

切換中間條碼 — 移位和代碼更改字元如何讓一個條碼混合設置,但需要額外的符號

當儲存的符號超過切換開銷時,混合識別碼可以在集合之間切換。 CODE128_AUTO 編碼器做出該決定;應用程式檢查輸出,而不是承諾每個隔離的數位對都會觸發特定的轉換。

開關符號消耗空間,這表示字母內的短數字島可能不值得輸入集合 C。 CODE128_AUTO 根據整個字串決定,而不是根據每兩個數字觸發開關的規則。這也解釋了為什么在序列中插入標点符号可以將其加宽多個資料符号:它可以分割有用的執行並導致围绕中斷的轉換。

計數模組 — 每個符號 11 個模組,13 個用於停止圖案,加上安靜區域,用於預測列印寬度

普通 Code 128 符號佔用十一個模組,而停止圖案較長,渲染器在兩側添加了十個窄條靜區。與計算可見輸入字元相比,對發出的模組進行計數可以更可靠地預測寬度。

渲染器將每個二進位模組轉換為固定倍數的像素,並在兩側添加十個窄模組安靜區域。它的停止順序是十三個模組,而普通符號則以十一個模組組開始。這些實現事實让布局使用返回的模塊計數來計算候選像素宽度;他们不保證物理打印將在特定設備上掃描。

工作範例 — 相同的十二字元序列僅作為數字,然後帶有字母前綴,比較符號計數和寬度

將 123456789012 與生成器中的 A12345678901 進行比較。全數位輸入為編碼器提供了一系列連續的對,而前綴則強制混合序列;ToolAcre的測試使用相同的原理來驗證數字資料是否更窄。

使用受控對,例如 `123456789012` 和 `A12345678901`,保留相同的匯出設置並比较两個 SVG viewBox 宽度。第二個值可能需要不同的起始集和混合編碼,即使兩者都包含十二個字元。與替換较小的模塊尺寸相比,這是一個更好的設計證明,较小的模塊尺寸保留了計數,但使打印机和讀取器更难解析每個条。

這不包括印表機解析度、色帶品質和零售條碼的 GS1 規則

此比較沒有提及色帶品質、印表機點或 GS1 標籤規則。它还不會將 ToolAcre 轉變為零售条形碼服務:對于您控制的標識符,配置和實現的符号系統是普通的 Code 128 。

ToolAcre 產生精確的幾何形狀後,會發生印表機點、油墨擴散和色帶轉移。 GS1 規則先於它發生,透過定義要編碼的資料和控制項來實現。這兩個問題都不能透過自動代碼集選擇來解決。技術上緊湊的 SVG 仍然可能是錯誤的符號系統、解析度不足的列印或接收資料庫從未註冊的標識符。

重點 — 盡可能設計帶有數字的標籤,然後在 QR 和條碼工具包中產生條碼以檢查其寬度

當緊湊性很重要時,設計帶有有用數字的內部標識符,但要讓必須鍵入它們的人能夠理解它們。在佈局標籤之前產生最終圖案,因為其真正的模組數是重要的寬度。

緊湊性應始終服從穩定的操作。較短的數字鍵可以節省模組,但當必須手動輸入損壞的標籤時,不透明的序列可能會增加轉錄錯誤。選擇工作人員和軟體可以使用的方案,在修復標籤範本之前產生代表性的極端值,並保留安靜區域,而不是為附近的文字回收空白區域。