跳過到頁腳內容
使用IRONBARCODE

C#中的Data Matrix生成器——完整教程及代碼示例

資料矩陣條碼將大量的編碼資料壓縮到一個很小的實體區域內,因此成為藥品標籤、電子元件標記以及在空間有限的庫存管理系統中追蹤物品的首選。 本教學將引導您了解如何使用IronBarcode在 C# 中產生 Data Matrix 條碼,自訂其外觀,編碼不同的資料類型,並將其匯出為各種檔案格式——所有這些都使用簡單易懂、可用於生產的程式碼完成。

立即開始在您的項目中使用 IronBarcode 並免費試用。

第一步:
green arrow pointer

資料矩陣條碼有何特別之處?

資料矩陣條碼是二維符號,它將資料編碼到排列成行和列的黑白點陣網格中。 與傳統的線性條碼(如 UPC 或 EAN)不同,它們可以在 10 x 10 個模組大小的空間內儲存多達 2,335 個字母數字字元或 3,116 個數字。 由於內建的里德-所羅門糾錯功能,即使符號損壞高達 30%,現代條碼掃描器也能準確讀取它們。

這些特性使得 Data Matrix 成為標記小型零件、郵政條碼和電子元件的理想選擇,也適用於醫療保健和物流中心的標籤製作。 醫療保健產業依賴GS1資料矩陣標準進行藥品追踪,而製造商則將其嵌入生產線,用於在全球範圍內識別產品。由於單一條碼可以儲存大量數據,因此如今已被國際上各行業廣泛採用,以實現完整的應用追溯。

ISO/IEC 16022 標準規範了資料矩陣編碼,定義了IronBarcode預設使用的 ECC200 變體。 ECC200 提供所有 Data Matrix 版本中最有效的糾正能力和最大的資料容量,使其成為新部署的正確選擇。

資料矩陣與常用條碼格式
格式 類型 最大字元數 錯誤糾正 典型用例
數據矩陣(ECC200) QR 圖 2,335 字母數字 里德-所羅門(約30%) 醫藥、電子、物流
QR 圖碼 QR 圖 4,296 字母數字 里德-所羅門(高達 30%) 網址、行銷、支付
UPC-A 1D 12位數字 沒有任何 零售產品標識
代碼 128 1D 約50個字符 僅校驗和 航運、一般物流

如何在 C# 專案中安裝條碼庫?

使用NuGet套件管理器安裝IronBarcode只需不到一分鐘。 在 Visual Studio 中開啟程式包管理器控制台並執行:

Install-Package BarCode

C# 資料矩陣產生器: IronBarcode完整指南:圖 1 - 與 C# 資料矩陣產生器: IronBarcode完整指南相關的 5 張圖片中的第 1 張

或者,在NuGet套件管理器 GUI 中搜尋Iron Software的BarCode 。 安裝完成後,將命名空間新增至您的 C# 檔案:

using IronBarCode;
using IronBarCode;
$vbLabelText   $csharpLabel

這就是全部的準備工作了。 IronBarcode會依照 ISO/IEC 16022 標準在內部處理所有複雜的 Data Matrix 編碼,因此您可以專注於應用程式邏輯。 如需離線安裝或自訂套件來源等其他設定選項,請參閱IronBarcode安裝指南進階NuGet安裝頁面

支援的目標框架

IronBarcode 的目標平台為.NET 10、 .NET 8、 .NET 6、 .NET 5、 .NET Standard 2.0 和.NET Framework 4.6.2 及更高版本。 如果您的專案面向這些框架中的任何一個,則NuGet套件無需額外配置即可安裝。

如何建立您的第一個資料矩陣條碼?

產生 Data Matrix 條碼只需要一行程式碼:

// Create a Data Matrix barcode with product information
var myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix);

// Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png");
// Create a Data Matrix barcode with product information
var myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix);

// Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png");
$vbLabelText   $csharpLabel

這段程式碼會建立一個資料矩陣條碼,編碼文字為 PROD-12345-2024,並將其儲存為 PNG 檔案。參數 BarcodeWriterEncoding.DataMatrix 指示IronBarcode使用資料矩陣格式。 產生的條碼會自動套用 ECC200 規範,該規範包含內建糾錯功能,可確保在實際條件下可靠掃描。

條碼輸出

C# 資料矩陣產生器: IronBarcode完整指南:圖 2 - 第一個條碼輸出

如需立即在應用程式中使用,請將條碼擷取為點陣圖或直接匯出為 PDF:

// Get barcode as a bitmap for direct display in a UI control
var barcodeBitmap = myBarcode.ToBitmap();

// Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf");
// Get barcode as a bitmap for direct display in a UI control
var barcodeBitmap = myBarcode.ToBitmap();

// Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf");
$vbLabelText   $csharpLabel

IronBarcode支援匯出為 PNG、JPEG、BMP、GIF、TIFF、SVG 和 PDF 格式。 您也可以建立條碼並將其新增至現有的 PDF 文件中,以便將其嵌入到採購訂單、發票或出貨清單中。

資料矩陣條碼可以編碼哪些資料類型?

Data Matrix 支援多種編碼模式,每種模式都針對不同的字元集進行了最佳化。 IronBarcode會根據您提供的內容自動選擇最高效的模式:

// Encode alphanumeric product codes
var productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix);
productCode.SaveAsImage("product-code.png");

// Encode numeric serial numbers (numeric mode uses less space)
var serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix);
serialNumber.SaveAsImage("serial-number.png");

// Encode URLs for product landing pages or support portals
var urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix);
urlCode.SaveAsImage("url-datamatrix.png");

// Encode Unicode text for international applications
var unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix);
unicodeBarcode.SaveAsImage("unicode-datamatrix.png");
// Encode alphanumeric product codes
var productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix);
productCode.SaveAsImage("product-code.png");

// Encode numeric serial numbers (numeric mode uses less space)
var serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix);
serialNumber.SaveAsImage("serial-number.png");

// Encode URLs for product landing pages or support portals
var urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix);
urlCode.SaveAsImage("url-datamatrix.png");

// Encode Unicode text for international applications
var unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix);
unicodeBarcode.SaveAsImage("unicode-datamatrix.png");
$vbLabelText   $csharpLabel

數字資料採用緊湊的編碼模式,與字母數字文字相比,可縮小條碼尺寸。 二進位編碼無需手動設定即可處理特殊字元和Unicode文字。 IronBarcode會自動選擇最有效的編碼模式,因此您無需明確指定。

輸出

這裡,所有四種資料類型都已成功編碼為有效的 Data Matrix 條碼。

C# 資料矩陣產生器: IronBarcode完整指南:圖 3 - 使用 4 種不同資料類型建立的資料矩陣條碼

若要深入了解編碼選項和字元集支持,請參閱IronBarcode編碼文件條碼資料類型參考

如何自訂資料矩陣條碼的外觀?

IronBarcode提供了一整套條碼自訂選項,用於控制尺寸、顏色、註解和邊距:

// Create barcode with custom styling
var customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix);

// Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500);

// Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);

// Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024");

// Set margins to preserve the required quiet zone
customBarcode.SetMargins(10);

customBarcode.SaveAsImage("custom-datamatrix.png");
// Create barcode with custom styling
var customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix);

// Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500);

// Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);

// Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024");

// Set margins to preserve the required quiet zone
customBarcode.SetMargins(10);

customBarcode.SaveAsImage("custom-datamatrix.png");
$vbLabelText   $csharpLabel

這些客製化服務有助於滿足企業品牌推廣要求或特定標籤標準。 ResizeTo 方法保持了正確的模組比例,這對於在任何掃描器距離下 Data Matrix 的可讀性至關重要。 顏色變化是為了適應特殊的印刷工藝或承印物限制,例如彩色標籤或金屬材料。 SetMargins 設定的靜默區裕度滿足 ISO/IEC 16022 規範中定義的最小空白要求。

C# 資料矩陣產生器: IronBarcode完整指南:圖 4 - 自訂資料矩陣輸出

選擇合適的條碼尺寸

Data Matrix 條碼的最小可讀尺寸取決於掃描器和列印解析度。 對於一般用途的掃描,建議使用至少 0.3 毫米的模組尺寸。 在 300 DPI 列印解析度下,500 像素的條碼尺寸約為 42 毫米見方——足以滿足可靠的手持掃描需求。 對於較小的標籤,增加 DPI 或減少資料有效載荷,使符號保持在可掃描的尺寸範圍內。

如何批次產生多個條碼?

批量生成功能減少了創建大量資料矩陣碼(用於生產運行、運輸標籤或序列化庫存)所需的工作量:

// Generate barcodes for a batch of products
string[] productIds = { "PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005" };

foreach (string id in productIds)
{
    var batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix);
    batchBarcode.ResizeTo(150, 150);
    batchBarcode.AddAnnotationTextBelowBarcode(id);

    // Save each barcode with a unique filename
    string filename = $"barcode_{id.Replace("-", "_")}.png";
    batchBarcode.SaveAsImage(filename);
}
// Generate barcodes for a batch of products
string[] productIds = { "PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005" };

foreach (string id in productIds)
{
    var batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix);
    batchBarcode.ResizeTo(150, 150);
    batchBarcode.AddAnnotationTextBelowBarcode(id);

    // Save each barcode with a unique filename
    string filename = $"barcode_{id.Replace("-", "_")}.png";
    batchBarcode.SaveAsImage(filename);
}
$vbLabelText   $csharpLabel

這種模式適用於需要大量標籤集的物流和醫療保健工作流程,每個標籤集都與一個唯一的識別碼相關聯。 對於 Web 應用程序,直接在 PDF 文件上添加條碼或將其作為字節數組進行串流傳輸,可以實現即時標籤生成,而無需保存中間文件。

C# 資料矩陣產生器: IronBarcode完整指南:圖 5 - 大量建立資料矩陣條碼

面向大批量資料的非同步和多線程處理

當產生數千個條碼時,同步處理會成為瓶頸。 IronBarcode提供非同步和多執行緒處理功能,讓您在多個 CPU 核心上並行產生條碼。 對於 10,000 個標籤的批次處理,與順序循環相比,平行處理可以將總生成時間減少一個數量級。

對於高吞吐量場景,可以考慮使用IronBarcode 的 PDF 沖壓 API將條碼分組到 PDF 表格中,而不是保存數千個單獨的映像文件,這可能會在 Windows 和 Linux 部署中造成文件系統開銷。

如何讀取和驗證資料矩陣條碼?

產生條碼只是工作流程的一半——驗證掃描器能否正確讀取條碼才是品質控制閉環的最後一步。 IronBarcodeIronBarcode條碼讀取器,可讓您在產生條碼後立即解碼:

// Generate a barcode
var generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix);
generated.SaveAsImage("verify-test.png");

// Read it back to confirm correct encoding
var results = BarcodeReader.Read("verify-test.png");
foreach (var result in results)
{
    Console.WriteLine($"Decoded value: {result.Value}");
    Console.WriteLine($"格式: {result.Barcode類型}");
}
// Generate a barcode
var generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix);
generated.SaveAsImage("verify-test.png");

// Read it back to confirm correct encoding
var results = BarcodeReader.Read("verify-test.png");
foreach (var result in results)
{
    Console.WriteLine($"Decoded value: {result.Value}");
    Console.WriteLine($"格式: {result.Barcode類型}");
}
$vbLabelText   $csharpLabel

這種往返驗證模式在受監管的行業(例如製藥業)中尤其有價值,因為《藥品供應鏈安全法案》(DSCSA) 規定處方藥包裝上的序列化條碼必須既是機器可讀的,又是格式正確的。 在生成流程中執行回讀檢查,可以在標籤到達生產線之前捕獲編碼錯誤。

如需更進階的讀取場景,請參閱IronBarcode讀取文件從 PDF 讀取條碼指南

常見的掃描相容性注意事項

不同掃描器韌體版本對資料矩陣符號的解讀有差異,對靜區和模組對比的容忍度也不同。如果目標裝置是舊款手持掃描器,則應增加模組尺寸,使用高對比的黑底白字,並確保靜區寬度至少為兩個模組的寬度。 GS1應用識別碼指南提供了在單一資料矩陣符號中編碼供應鏈識別碼(例如批號、有效期限和 GTIN)的模式。

下一步計劃是什麼?

使用IronBarcode在 C# 中產生 Data Matrix 條碼遵循一致的模式:安裝NuGet包,呼叫 BarcodeWriter.CreateBarcodeBarcodeWriterEncoding.DataMatrix,套用任何所需的自訂項,然後匯出為目標格式。 同一個 API 可以處理從單一條碼原型到大批量管線的所有操作。

以下是進一步推進此專案的推薦路徑:

-探索條碼讀取IronBarcode讀取指南涵蓋了從影像、PDF 和即時攝影機串流中解碼條碼。 -嘗試其他 QR 圖 格式: IronBarcode也使用相同的 API 產生QR 碼、PDF417、Aztec 和所有主要的 1D 格式。 -在文件中嵌入條碼PDF 加蓋條碼教學課程展示如何以程式設計方式為現有 PDF 新增條碼。 -利用非同步處理進行擴充:查看非同步和多執行緒指南,以並行化大型批次作業。 -查看許可IronBarcode許可頁面列出了從開發者到 OEM 再分發的各種選項。

開始免費試用,即可不受限制地測試所有功能,或查看完整的IronBarcode文檔,以取得詳細的 API 參考和其他程式碼範例。

立即開始在您的項目中使用 IronBarcode 並免費試用。

第一步:
green arrow pointer

常見問題解答

什麼是 Data Matrix 條碼?

Data Matrix 條碼是一種由 ISO/IEC 16022 標準管理的 2D 符號,可以在小的網格中編碼最多 2,335 個字母數字字符或 3,116 個數字。它通常用於藥品標籤、電子產品標記和庫存管理。

如何在 C# 中生成 Data Matrix 條碼?

呼叫 BarcodeWriter.CreateBarcode 並將您的數據字串和 BarcodeWriterEncoding.DataMatrix 作為參數,然後在結果上呼叫 SaveAsImage 或 SaveAsPdf。IronBarcode 自動處理 ECC200 編碼和錯誤修正。

使用 IronBarcode 產生 Data Matrix 有哪些好處?

IronBarcode 可以在一行程式碼中生成 ECC200 Data Matrix 條碼,自動處理編碼模式選擇,並可導出到 PNG、PDF、SVG 和其他格式,無需額外的依賴。

IronBarcode能否將Data Matrix條碼匯出為不同的檔案格式?

是的。IronBarcode 可將 Data Matrix 條碼導出為 PNG、JPEG、BMP、GIF、TIFF、SVG 和 PDF。您也可以直接將條碼加蓋在現有的 PDF 文件中。

是否可以使用 IronBarcode 自訂 Data Matrix 條碼?

是的。IronBarcode 提供 ResizeTo 設計尺寸,ChangeBarCodeColor 和 ChangeBackgroundColor 設計顏色,AddAnnotationTextBelowBarcode 提供可讀文字,SetMargins 控制靜默區域。

Data Matrix條碼特別適用於哪些產業?

Data Matrix 條碼在製藥行業用於 DSCSA 合規,在電子產品中用於元件識別,在物流中用於包裹跟踪,在醫療保健中用於符合 GS1 的藥品標籤。

IronBarcode 生成哪個版本的 Data Matrix?

IronBarcode 預設生成 ECC200 Data Matrix 條碼。ECC200 是當前的 ISO/IEC 16022 標準版本,提供最高的數據容量和 Reed-Solomon 錯誤修正。

為什麼選擇使用 Data Matrix 條碼而非其他 2D 碼?

Data Matrix 條碼因其在小的物理面積下的高數據密度、可承受多達 30% 符號損壞的 Reed-Solomon 錯誤修正和已獲得全球監管行業認可的 ISO/IEC 標準化而受到青睞。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我