barcode generator explained
條碼產生器詳解:1D 格式與 SVG 輸出

條碼產生器實際上在做什麼

條碼產生器是一種軟體,能將輸入的值(字母、數字,或兩者皆有)轉換成機器可讀取的平行條紋與間距圖樣,並遵循已公布的符號標準。每種符號(如 Code 128、EAN-13、UPC-A、Code 39 等)都定義了字元如何對應到條寬、在特定空間內可容納多少字元,以及是否需要檢查碼。產生器的工作就是套用這個對應規則,並產出掃描器能解讀的影像。像是條碼產生器這種以瀏覽器為基礎的工具,會在你的裝置上以 JavaScript 完整執行所有對應,因此你輸入的值絕不會離開你的機器。輸出是向量 SVG,這代表同一個檔案無論印在 4 mm 的珠寶標籤上或整張海報上,都能保持清晰銳利。選擇正確的符號並輸入正確位數的數字,就是全部的技巧——其餘的編碼工作,包括零售掃描器用來在錯誤進入條碼標籤前抓出轉錄錯誤的 modulo-10 檢查碼,都由工具代勞。

值得認識的四種 1D 格式

1D(一維)條碼透過平行線條寬度的變化來編碼資料。條碼產生器支援的四種格式各自涵蓋不同的使用情境,而選錯格式正是產生的條碼在收銀台或倉庫掃不出來的最常見原因。

符號最適用於字元集長度檢查碼
Code 128貨運、物流、混合文字標籤完整 ASCII(字母、數字、符號)可變內建(modulo-103)
EAN-13全球零售商品僅數字13(12 資料碼 + 1 檢查碼)Modulo-10
UPC-A美國與加拿大的零售商品僅數字12(11 資料碼 + 1 檢查碼)Modulo-10
Code 39內部庫存、汽車、國防標籤A–Z、0–9、少數符號可變選用(mod-43)

Code 128 是貨運業者與倉庫的主力格式。它能將任何 ASCII 字元——字母、數字與常見符號——壓縮成密度極高的圖樣,這也是為何貨運標籤與 SSCC 棧板碼預設採用它。EAN-13 是全球大多數消費品在結帳時掃描的 13 位數零售條碼。UPC-A 則是它在北美地區的 12 位數對應版本,用於美國與加拿大。Code 39(又稱 Code 3 of 9)是較舊但耐用的字母數字格式,在汽車、國防與內部庫存系統中仍很常見,因為它不需要檢查碼,且能在基本的標籤材質上清晰列印。商店結帳的零售掃描器通常設定為 EAN-13 或 UPC-A;貨運業者分揀中心的物流掃描器多半設定為 Code 128;工廠產線的掃描器則可能預設為 Code 39——因此一開始就選對符號,能省下整批作廢的重印作業。

檢查碼如何在列印前攔截打錯字的情況

EAN-13 與 UPC-A 都以一個檢查碼作為結尾——這是一個依據其他位數、以 modulo-10 公式計算出來的額外數字。當掃描器讀取條碼時,會從資料位數重新計算檢查碼,並與印出的那一位比對。若兩者不符,掃描器會將該次讀取視為誤讀或轉錄打錯而拒絕。相同的算術反向也很有用:條碼產生器若能讓你只輸入資料位數,並自動為你補上檢查碼,其實就是執行同一套 modulo-10 運算。如果你貼上的是一組完整的代碼,工具也應該會驗證檢查碼是否正確,並在你印出永遠掃不出來的標籤之前標出錯誤。

EAN-13 的檢查碼公式,由左至右以 1 與 3 交替加權,步驟如下:

  1. 取代碼的前 12 位數字。
  2. 將每一位乘以其權重——位置 1 × 1、位置 2 × 3、位置 3 × 1、位置 4 × 3,依此類推至位置 12。
  3. 將 12 個乘積加總。
  4. 檢查碼為 (10 − (總和 mod 10)) mod 10。

以已公布的 ISBN-13 9780306406157 為例:

位置數字權重乘積
19×19
27×321
38×18
40×30
53×13
60×30
76×16
84×312
90×10
106×318
111×11
125×315

總和 = 9 + 21 + 8 + 0 + 3 + 0 + 6 + 12 + 0 + 18 + 1 + 15 = 93。接著 93 mod 10 = 3,檢查碼即為 (10 − 3) mod 10 = 7。因此完整的 EAN-13 為 9780306406157——也就是印在大多數書籍背面的同一組 13 位數字。Code 128 與 Code 39 不需要另外由使用者提供檢查碼。Code 128 在圖樣內部自帶 modulo-103 的完整性位元組,而 Code 39 有選用的 mod-43 檢查字元,多數產生器除非你明確要求,否則會省略。UPC-A 採用與 EAN-13 相同的 modulo-10 運算,但作用於 11 位資料碼而非 12 位,這也是為何條碼產生器提示輸入的是 11(或 12)位,而非 12(或 13)位。

為何輸出格式是 SVG 而非 PNG

條碼只有在條紋邊緣保持銳利時才能被掃描。PNG 這類點陣格式儲存的是像素,因此當你把 PNG 條碼放大到海報尺寸時,條紋會模糊,掃描器可能會失敗。SVG 將條碼儲存為向量幾何——以精確寬度繪製的線條——因此同一個檔案在 4 mm 的珠寶標籤或 400 mm 的貨運標牌上都能呈現完全相同的結果。所有現代標籤應用程式與瀏覽器都能開啟 SVG,若特定工作流程需要點陣格式,任何設計工具稍後也能將其轉換成 PNG。另一面是,SVG 並非相片:它沒有反鋸齒的灰階,只有精確寬度的黑色條紋與白色間距。這對條碼來說才是正確的取捨,因為掃描器讀取的是條紋邊緣的二進位轉換,而非連續色調。一旦 SVG 儲存完成,你可以將它放進標籤模板、包裝設計、試算表或設計檔案中,並在不重新算圖的情況下自由縮放。

三步驟產生條碼

  1. 選擇條碼格式——物流或任何文字內容選 Code 128,零售商品選 EAN-13 或 UPC-A,庫存選 Code 39。
  2. 輸入你的值;EAN-13 請輸入 12 位數字(或完整 13 位),UPC-A 請輸入 11 位數字(或完整 12 位)——檢查碼會自動補上或進行驗證。
  3. 條碼會在你輸入的同時即時產生。點擊 Download SVG 即可儲存可印刷的向量檔案。

這就是零售 EAN-13 或 UPC-A 標籤、物流 Code 128 貨運標籤,以及 Code 39 庫存貼紙的完整工作流程。一旦 SVG 存到磁碟,將它放進 Word、Pages、Illustrator 或你的貨運軟體中的標籤模板;自由調整大小;並以任何 DPI 列印。如需格式、位數與輸出選項的可列印摘要,條碼產生器速查表將同樣的資訊彙整在一處。

為何在本機、於瀏覽器中產生能保障資料隱私

由於符號對應完全在你所載入網頁上的 JavaScript 中執行,你輸入的值絕不會接觸到任何伺服器。SKU、GTIN、內部追蹤編號與棧板 ID 都保留在你的機器上——當同一張標籤紙上含有你尚未公布且不希望被任何索引系統收錄的代碼時,這點格外有用。本機執行也意味著工具在頁面被快取後仍可繼續運作,因此在展場 Wi-Fi 不穩時,也不會卡住標籤列印。沒有浮水印、沒有按次計費、沒有帳號,也沒有使用次數上限;從輸入數字到儲存 SVG 的整個流程,都在同一個地方、在你眼前這台裝置上完成,中間完全沒有上傳的步驟。

若你正在比較各種選擇,條碼產生器入門:快速上手指南對此有更詳細的說明。