如何建立一維條碼和線性條碼

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode 可讓您使用簡單的 C# 程式碼產生所有主要的 1D 條碼格式,包括 Code 128、GS1-128、Code 39、Code 93、EAN-13、EAN-8、UPC-A、UPC-E、Intelligent Mail、MSI、Codabar 和 DataBar,並具有自動驗證功能。 您可以瀏覽所有支援的條碼格式列表,找到適合您需求的格式。

線性條碼仍然是訊息傳遞的行業標準。 它們速度快、效能可靠,幾乎可以與任何掃描器配合使用。 由於這些條碼不需要複雜的影像處理,因此它們在零售收銀台和傳送帶等高速環境中表現出色。

主要挑戰在於根據您的具體需求選擇正確的格式。 您可能需要Code128的高資料密度用於運輸標籤, EAN8的緊湊尺寸用於小型產品,或IntelligentMail Barcode 的嚴格格式用於郵政服務。 IronBarcode 可以幫助您有效率且可靠地產生所有這些格式。 該庫還支援多種輸出資料格式,可與您現有的系統無縫整合。

本指南介紹如何使用 IronBarcode 產生最關鍵的一維條碼格式及其常見用例。

開始使用 IronBarcode


快速入門:創建您的第一個一維條碼

  1. 透過 NuGet 套件管理器安裝 IronBarcode
  2. 使用BarcodeWriter.CreateBarcode()和你的資料字串
  3. 使用BarcodeEncoding枚舉指定條碼類型
  4. 使用SaveAs方法另存為 JPEG、PNG 或 PDF 格式
  5. 套用可選樣式,例如字體大小和邊距

以下是一個完整的範例:

```cs :title=快速入門 使用 IronBarCode;

// 建立一個簡單的 Code128 條碼 GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("HELLO-WORLD-123", BarcodeEncoding.Code128);

// 將條碼儲存為圖像 條碼.SaveAsJpeg("MyFirstBarcode.jpg");

// 或儲存為自訂尺寸 條碼.調整大小為(400, 100); barcode.SaveAsPng("MyCustomBarcode.png");


如需更詳細的安裝說明,請造訪我們的["入門概覽"](https://ironsoftware.com/csharp/barcode/docs/)頁面。

<!-- TODO: Add image here -->
<!-- ![Output showing create 1d and linear barcodes results in IronPDF](/static-assets/images/TODO/create-1d-and-linear-barcodes-code_output.webp) -->
<!-- Description: Screenshot showing code execution output or results -->

## 如何建立一維條碼和線性條碼?

線性一維條碼使用可變寬度的線條和間距來水平儲存資料。 二維條碼(如二維碼)使用方格網格來儲存二維資訊。 二維條碼可以容納更多數據,例如網址或聯絡卡,而一維條碼則僅限於短的字母數字字串。 

這種簡潔性使得一維條碼能夠更快掃描。 這使得它們與標準雷射掃描器普遍相容,使其成為高速零售和物流環境的理想選擇。 在處理大批量掃描應用時,請探索我們的[讀取速度選項](https://ironsoftware.com/csharp/barcode/how-to/reading-speed-options/)以優化效能。

讓我們來探討IronBarcode最支援的格式以及如何建立這些格式。

### 如何建立 Code-128 條碼?

Code 128 條碼通常用於內部物流和運輸標籤。 它支援完整的 128 個字元的 ASCII 範圍,因此能夠非常有效率地將標準數字和英文文字壓縮到很小的空間中。 這使得 Code 128 成為倉庫管理系統和庫存追蹤的理想選擇,因為在這些系統中,空間有限但資料密度至關重要。

但是,如果沒有額外的擴展,它本身並不支援 Unicode 或非拉丁字元。 它無法處理中文或阿拉伯語等語言的複雜字符,會錯誤地解釋數據,導致輸出錯誤。 對於需要 Unicode 支援的應用,請參閱我們的[Unicode 條碼編寫](https://ironsoftware.com/csharp/barcode/how-to/writing-in-unicode/)指南。

#### 我需要什麼代碼?

IronBarcode 讓產生 Code-128 變得非常簡單:在呼叫`Create`方法時將`BarcodeEncoding.Code128`作為第二個參數傳遞,然後匯出為映像。 了解更多關於[創建具有各種格式和選項的條碼圖像的資訊](https://ironsoftware.com/csharp/barcode/how-to/create-barcode-images/)。

```cs
:path=/static-assets/barcode/content-code-examples/how-to/create-code-128-barcode.cs

輸出結果是什麼樣子的?

Code-128 範例輸出

如何建立GSI-128條碼?

GS1-128 是在 Code 128 的基礎上新增的一種資料格式。 GS1-128 的主要優點是全球數據解釋的一致性,消除了誤解和歧義。 這種標準化對於產品在不同公司和國家之間流動的供應鏈管理至關重要。

但是,由於嚴格的格式要求,缺少隱藏的控製字元或欄位長度不正確會導致條碼不符合規範。 如果您在使用 GS1-128 格式時遇到問題,我們的GS1-128 故障排除指南可以協助您解決常見問題。

GSI-128 需要什麼格式?

條碼掃描器使用應用程式識別碼 (AI)-用於識別產品代碼中資訊的數字前綴。 了解這些標識符對於創建符合全球供應鏈規範的條碼至關重要。

GS1-128 遵循以下四部分資料結構:

(數位前綴 01)GTIN(全球貿易項目代碼) :用於識別產品的唯一產品 ID。 必須是14位數字。 如果您的產品代碼較短,請在前面補零。 例如,123456789012 變為 00123456789012。

(數字前綴 10)批次/批號:產品的批次號碼或批號。 1 到 20 個字母數字字元。 當放置在條碼中間時,需要 FNC1 分隔符,以便掃描器知道條碼的結束位置。 如果條碼位於末端,則無需分隔符號。

(數字前綴 17)有效期限:產品的到期日。 固定為六位數,格式為YYMMDD。 例如,251231 表示 2025 年 12 月 31 日。年份採兩位數,世紀採滑動窗口。

(數字前綴 21)序號:用於識別唯一單一單元的產品序號。 可變長度,包含 1-20 個字母數字字元。

請注意只需要GTIN; 批次、過期時間和序號屬性是可選的。

雖然只需要 GTIN,但一些零售商有特定的合規指南。 在建立條碼時,請查看他們的要求。

如何使用 IronBarcode 產生 GSI-128?

產生 GS1-128 條碼很容易; 呼叫Create時,將BarcodeEncoding.Code128GS1作為第二個參數傳遞。

下面的範例顯示了一個完整的符合 GS1-128 標準的值,包含所有四個屬性,並將其匯出為影像。

每個數字前綴都必須用括號括起來,否則該部分將無法被識別為有效屬性。

[{i:(IronBarcode 在建立 GSI-128 時會自動插入FNC1分隔符號。

:path=/static-assets/barcode/content-code-examples/how-to/create-gsi-128-barcode.cs
using IronBarCode;

// Valid GS1-128 String: GTIN + Expiry + Batch + Serial Number
string gs1Value = "(01)01234567890128(17)251231(10)BATCH001(21)111111";

// Create the barcode
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(gs1Value, BarcodeEncoding.Code128GS1);

// Display the value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("gsi128-sample.jpg");
$vbLabelText   $csharpLabel

GSI-128 的輸出影像是什麼樣的?

GS1-128 範例輸出

如何修復GSI-128格式錯誤?

如果您的字串不符合 GS1-128 標準,IronBarcode 將拋出異常。 請使用上表驗證您的字串值,並進行相應的修改。

GS1-128 例外

如何建立 Code 39 條碼?

Code 39 是最早的字母數字條碼標準之一,以其可靠性而聞名。 在汽車和國防領域很常見。 它能夠對字母和數字進行編碼而無需校驗位,這使得它在透過其他方式驗證資料完整性的環境中變得簡單易用。

但是,代碼 39 的字元集有限。 它只允許輸入大寫英文字元、數字和符號,例如 /、.、- 等。標準模式不支援小寫字母。 有關讀取標準和擴展 Code 39 條碼的信息,請參閱我們的Code 39 讀取指南

我需要什麼代碼才能使用代碼 39?

若要產生 Code39,請在使用Create時將BarcodeEncoding.Code39作為第二個參數傳遞。

舉個例子:

:path=/static-assets/barcode/content-code-examples/how-to/create-code-39-barcode.cs
using IronBarCode;

// Specify Code39 Format
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("IRON-1234", BarcodeEncoding.Code39);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("code39.jpg");
$vbLabelText   $csharpLabel

Code 39 的輸出是什麼樣的?

Code39 範例輸出

為什麼我會收到代碼 39 錯誤?

代碼39異常

如果字串不符合 Code39 標準,IronBarcode 將拋出此例外。

警告IronBarcode 目前不支援產生擴充 Code39 條碼; 僅支援閱讀。 若要閱讀擴充功能和標準 Code39,請參閱我們的Code 39 閱讀教學

如何建立 Code 93 條碼?

Code 93 改進了 Code 39,Code 39 通常用於物流和電子元件標籤,因為在這些地方空間有限但又需要字母數字資料。 這種更高的密度適用於空間至關重要的小型電子元件。

它接受完整的 ASCII 字元、大寫英文字母、數字和符號。 密度高於 Code 39。

我需要什麼代碼才能使用代碼 93?

若要產生 Code93,請在使用Create時將BarcodeEncoding.Code93作為第二個參數傳遞:

:path=/static-assets/barcode/content-code-examples/how-to/create-code-93-barcode.cs
using IronBarCode;

// Valid Input: Uppercase A-Z, 0-9, specific symbols
string code93Value = "ELEC-COMP-99";

// Create Code 93
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(code93Value, BarcodeWriterEncoding.Code93);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("code93.jpg");
$vbLabelText   $csharpLabel

Code 93 的輸出是什麼樣的?

Code93 範例輸出

如何建立 CodaBar 條碼?

Codabar 能夠有效抵抗列印品質不佳的問題,廣泛應用於血庫和圖書館。 此格式的容錯性非常適合低品質印表機或磨損情況。

可變長度但有限的字元集。 僅包含數字(0-9)和符號(-, $, :, /, ., +) 。 起始/結束字元 A、B、C、D 表示開始或結束。 這些字元不能出現在條碼中間。

我需要哪些 CodaBar 程式碼?

若要產生 Codabar,請在使用Create時將BarcodeEncoding.Codabar作為第二個參數傳遞:

:path=/static-assets/barcode/content-code-examples/how-to/create-codabar-barcode.cs
using IronBarCode;

// Valid Input: Numbers 0-9 and symbols -$:/.+ IronBarcode automatically appends by A, B, C, or D
string codabarValue = "10500200";

// Create Codabar
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(codabarValue, BarcodeWriterEncoding.Codabar);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("codabar.jpg");
$vbLabelText   $csharpLabel

CodaBar 的產出結果是什麼樣的?

Codabar 範例輸出

為什麼 CodaBar 會拋出錯誤?

如果輸入包含字母,IronBarcode 會拋出異常,指出它只接受數值。

Codabar 異常

如何建立DataBar條碼?

GS1 DataBar(以前稱為 RSS-14)更加緊湊,專為產品識別號碼而設計。 對於新鮮農產品等小件商品來說非常實用,因為傳統的條碼會佔用太多空間。 在我們的新格式里程碑更新中了解更多關於新格式功能的資訊。

與 GS1-128 一樣,它有嚴格的編碼格式。 全向變體包含產品代碼屬性。

GS1-DataBar 需要什麼格式?

(數位前綴-01)GTIN(全球貿易項目代碼) :唯一的商品 ID。 必須是14位數字。

警告標準"GS1 DataBar Omnidirectional"只能容納GTIN(01)。 使用 GS1 DataBar Expanded 查看其他屬性。

如何產生GS1資料條碼?

若要產生 GS1 DataBar,請在使用Create時將BarcodeEncoding.DataBar作為第二個參數傳遞:

:path=/static-assets/barcode/content-code-examples/how-to/create-gs1-databar-barcode.cs
using IronBarCode;

// Valid Input: Exactly 14 digits (GTIN). IronBarcode will calculate and append the correct check digit.
string databarValue = "0123456789012";

// Create GS1 DataBar
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(databarValue, BarcodeWriterEncoding.DataBar);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("databar.jpg");
$vbLabelText   $csharpLabel

DataBar 的輸出結果是什麼樣的?

GS1-Databar 範例輸出

如何建立EAN-13條碼?

EAN-13 是全球消費品零售條碼的標準格式,也是應用最廣泛的格式之一。 對於零售應用,探索如何自訂條碼樣式以滿足品牌要求。

EAN-13 標準需要嚴格的許可。 如果沒有取得 GS1 公司前綴許可以確保條碼的唯一性,則無法產生供公眾使用的 EAN-13 編號。 僅包含13位數字。 有關許可信息,請訪問我們的許可頁面

EAN-13 有特定的格式規則。

EAN-13 需要什麼格式?

EAN-13 條碼由四個部分組成:

GS1 前綴(前 3 位數字) :標識 GS1 會員組織,通常是註冊國家。 例如:000-019(美國/加拿大 - UPC 相容),500-509(英國),450-459(日本)。

製造商代碼:由 GS1 分配的可變長度代碼。

產品代碼:由製造商分配給特定產品。

校驗位(末位) :使用模 10 演算法從前 12 位計算。 確保掃描器讀取準確。

[{w:(前綴 200-299 保留用於限制流通。 在生產環境中產生 EAN-13 條碼時,請勿使用這些前綴。