如何在C#中使用IronBarcode生成條碼
IronBarcode 是一個 .NET 條碼庫,只需幾行程式碼即可在 C# 中產生和讀取條碼。 您可以建立 Code 128、QR 碼、EAN-13、PDF-417、Data Matrix 以及數十種其他條碼類型——然後匯出為 PNG、JPEG、TIFF、BMP、PDF 或 HTML 格式。 本指南將引導您完成安裝、核心生成模式、樣式、匯出格式和最佳實踐,以便您可以為任何 .NET 應用程式添加可靠的條碼輸出。
如何使用 NuGet 套件管理器安裝條碼產生器庫?
開啟 Visual Studio,並在套件管理員控制台中使用此指令安裝 NuGet 套件:
Install-Package BarCode

NuGet 套件支援 .NET 10、.NET 8、.NET 6、.NET Core、.NET Standard 和 .NET Framework,使其與 Windows 應用程式和跨平台 .NET 應用程式相容。 IronBarcode 支援部署至 Docker containers、Azure 和 Linux 伺服器。 更多詳細資訊和參考文件請參閱IronBarcode 文件頁面和Iron Software GitHub 專案。
安裝完成後,您將在專案中看到 IronBarCode 命名空間。 該程式庫在 Windows 上不需要額外的執行時間相依性——在 Linux 上,您可能需要安裝一些系統程式庫,如IronBarcode Linux 部署指南中所述。
如何在 C# 中產生簡單的條碼圖像檔案?
僅需幾行程式碼即可建立 BarCode 影像。 以下範例顯示可儲存 PNG 影像檔案的 BarCode 產生:
using IronBarCode;
// Generate a simple barcode and encode the string data
var barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128);
// Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png");
using IronBarCode;
// Generate a simple barcode and encode the string data
var barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128);
// Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png");
Imports IronBarCode
' Generate a simple barcode and encode the string data
Dim barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128)
' Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png")
BarcodeWriter.CreateBarcode() 方法接受一個要編碼的字串和來自 BarcodeWriterEncoding 的條碼格式。 傳回的 GeneratedBarcode 參考提供了樣式方法和匯出選項,可儲存為 PNG、JPEG、BMP、TIFF、PDF 或 HTML 格式。
輸出
。
Code128 是物流和庫存系統中的主力條碼。 它以緊湊的線性格式對大寫字母、小寫字母、數字和特殊字元進行編碼。 這種條碼類型可確保在全球各地的物流中心和零售環境中正確掃描。使用 SaveAsPng() 方法時,IronBarcode 會自動設定適用於螢幕顯示和標準印表機的預設解析度。
對於需要直接從 Web 端點提供條碼圖像的應用程序,可以使用 ToStream() 而不是儲存到磁碟。 可以直接將流寫入 ASP.NET Core 中的 HttpResponse,或從控制器操作中作為 FileStreamResult 返回。
如何建立二維碼和其他二維條碼?
IronBarcode 支援所有主要的條碼格式,包括 QR Code 和 Data Matrix 等 2D 條碼類型。 以類似的語法產生 QR 代碼:
using IronBarCode;
// Create a QR code and encode URL data
var qrCode = BarcodeWriter.CreateBarcode(
"https://ironsoftware.com/csharp/barcode/",
BarcodeWriterEncoding.QRCode
);
qrCode.SaveAsPng("website-qr.png");
using IronBarCode;
// Create a QR code and encode URL data
var qrCode = BarcodeWriter.CreateBarcode(
"https://ironsoftware.com/csharp/barcode/",
BarcodeWriterEncoding.QRCode
);
qrCode.SaveAsPng("website-qr.png");
Imports IronBarCode
' Create a QR code and encode URL data
Dim qrCode = BarcodeWriter.CreateBarcode(
"https://ironsoftware.com/csharp/barcode/",
BarcodeWriterEncoding.QRCode
)
qrCode.SaveAsPng("website-qr.png")
QR code 條碼類型擅長於儲存 URL 和較大的資料有效載荷。 該函式庫會自動處理錯誤修正,以確保條碼即使在部分損壞時仍可掃瞄。 預設情況下,IronBarcode 使用 M(中等)糾正級別,可從大約 15% 的資料遺失中恢復——對於可能被刮傷或部分遮擋的列印條碼,您可以將其提高到 H 級別。
輸出

對於需要使用 EAN-13 條碼的零售產品,請像這樣產生條碼影像:
using IronBarCode;
// Generate an EAN-13 barcode compatible with UPC for retail print applications
var eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13);
eanBarcode.SaveAsPng("retail-product.png");
using IronBarCode;
// Generate an EAN-13 barcode compatible with UPC for retail print applications
var eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13);
eanBarcode.SaveAsPng("retail-product.png");
Imports IronBarCode
' Generate an EAN-13 barcode compatible with UPC for retail print applications
Dim eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13)
eanBarcode.SaveAsPng("retail-product.png")
EAN-13 是全球零售 POS 系統的標準格式。該程式庫會自動計算校驗位,因此您只需提供有效 GTIN-13 程式碼的前 12 位數字即可。 如果您提供的校驗位不匹配,IronBarcode 會拋出一個描述性異常,而不是默默地產生一個無法讀取的條碼。
輸出
。
除了 Code 128、QR Code 和 EAN-13 之外,該程式庫還支援 Code 39、Code 93、UPC-A、UPC-E、ITF、Codabar、PDF-417、Aztec 和 Data Matrix。 支援的格式完整清單可在IronBarcode 條碼類型參考頁面上找到。
如何創建具有高級樣式選項的精美二維碼?
專業的 BarCode 生成通常需要進階的樣式選項來調整顏色和新增註解。 GeneratedBarcode 類別提供了一個流暢的 API 以及樣式方法:
using IronBarCode;
using IronSoftware.Drawing;
// Create a styled barcode with advanced styling options
var styledBarcode = BarcodeWriter
.CreateBarcode("INV-2025-001847", BarcodeWriterEncoding.Code128)
.ResizeTo(400, 120)
.SetMargins(20)
.ChangeBarCodeColor(Color.DarkBlue)
.AddAnnotationTextAboveBarcode("Invoice Number:")
.AddBarcodeValueTextBelowBarcode();
// Verify to ensure proper scanning after styling
bool isReadable = styledBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
styledBarcode.SaveAsPng("styled-invoice-barcode.png");
using IronBarCode;
using IronSoftware.Drawing;
// Create a styled barcode with advanced styling options
var styledBarcode = BarcodeWriter
.CreateBarcode("INV-2025-001847", BarcodeWriterEncoding.Code128)
.ResizeTo(400, 120)
.SetMargins(20)
.ChangeBarCodeColor(Color.DarkBlue)
.AddAnnotationTextAboveBarcode("Invoice Number:")
.AddBarcodeValueTextBelowBarcode();
// Verify to ensure proper scanning after styling
bool isReadable = styledBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
styledBarcode.SaveAsPng("styled-invoice-barcode.png");
Imports IronBarCode
Imports IronSoftware.Drawing
' Create a styled barcode with advanced styling options
Dim styledBarcode = BarcodeWriter _
.CreateBarcode("INV-2025-001847", BarcodeWriterEncoding.Code128) _
.ResizeTo(400, 120) _
.SetMargins(20) _
.ChangeBarCodeColor(Color.DarkBlue) _
.AddAnnotationTextAboveBarcode("Invoice Number:") _
.AddBarcodeValueTextBelowBarcode()
' Verify to ensure proper scanning after styling
Dim isReadable As Boolean = styledBarcode.Verify()
Console.WriteLine($"Barcode verification: {(If(isReadable, "PASS", "FAIL"))}")
styledBarcode.SaveAsPng("styled-invoice-barcode.png")
流暢的 API 可讓您在單一語句中,以鏈結式樣化方法調整顏色、設定邊緣及新增文字。 Verify() 方法指示您的條碼是否仍可讀取機器-確保在應用非標準顏色或調整尺寸至較小尺寸後,在生產中正確掃描。
將條碼顏色改為非常淺的色調或與白色背景對比度很低的藍色,可能會導致條碼無法掃描。 顏色變更後,請務必撥打 Verify()。 如果驗證失敗,則增加對比或恢復為黑邊。 條碼樣式和自訂指南詳細介紹了所有可用的樣式方法。
為了在整個產品目錄中產生具有一致樣式的多個條碼,請建立一個輔助方法,將您的標準樣式鏈套用至每個 GeneratedBarcode 實例。 這種方法可以確保產生的數千張圖像具有統一的邊距、字體大小和顏色。
如何將條碼匯出為不同的影像格式?
針對不同的使用情況,產生多種格式的 BarCode 影像。 圖庫可儲存為 PNG、JPEG、BMP、TIFF、PDF 和 HTML:
using IronBarCode;
var barcode = BarcodeWriter.CreateBarcode("EXPORT-TEST", BarcodeWriterEncoding.Code128);
// Export barcode images to various formats
barcode.SaveAsPng("barcode.png"); // Web-compatible raster image
barcode.SaveAsJpeg("barcode.jpg"); // Compressed format for email attachments
barcode.SaveAsTiff("barcode.tiff"); // High-quality format for print workflows
barcode.SaveAsPdf("barcode.pdf"); // PDF document output
barcode.SaveAsHtmlFile("barcode.html"); // HTML for inline web embedding
// Get as bitmap stream for web APIs or database storage
System.IO.Stream barcodeStream = barcode.ToStream();
System.Drawing.Bitmap bitmapImage = barcode.ToBitmap();
using IronBarCode;
var barcode = BarcodeWriter.CreateBarcode("EXPORT-TEST", BarcodeWriterEncoding.Code128);
// Export barcode images to various formats
barcode.SaveAsPng("barcode.png"); // Web-compatible raster image
barcode.SaveAsJpeg("barcode.jpg"); // Compressed format for email attachments
barcode.SaveAsTiff("barcode.tiff"); // High-quality format for print workflows
barcode.SaveAsPdf("barcode.pdf"); // PDF document output
barcode.SaveAsHtmlFile("barcode.html"); // HTML for inline web embedding
// Get as bitmap stream for web APIs or database storage
System.IO.Stream barcodeStream = barcode.ToStream();
System.Drawing.Bitmap bitmapImage = barcode.ToBitmap();
Imports IronBarCode
Dim barcode = BarcodeWriter.CreateBarcode("EXPORT-TEST", BarcodeWriterEncoding.Code128)
' Export barcode images to various formats
barcode.SaveAsPng("barcode.png") ' Web-compatible raster image
barcode.SaveAsJpeg("barcode.jpg") ' Compressed format for email attachments
barcode.SaveAsTiff("barcode.tiff") ' High-quality format for print workflows
barcode.SaveAsPdf("barcode.pdf") ' PDF document output
barcode.SaveAsHtmlFile("barcode.html") ' HTML for inline web embedding
' Get as bitmap stream for web APIs or database storage
Dim barcodeStream As System.IO.Stream = barcode.ToStream()
Dim bitmapImage As System.Drawing.Bitmap = barcode.ToBitmap()
ToStream() 方法傳回與 ASP.NET Core Web API 和 Blazor 應用程式相容的條碼資料。 ToBitmap() 方法為 System.Drawing.Bitmap 提供進一步影像處理的參考。 若要將條碼新增至現有的 PDF 文件中,請參閱IronBarcode PDF 條碼教學。
輸出
。
。
選擇合適的格式取決於您的後續工作流程。 PNG 格式無損,是網頁和應用程式使用者介面的良好預設格式。 在對色彩精度要求較高的印刷生產流程中,TIFF 格式是首選。 當您需要一份可以直接由印刷廠處理的可列印文件時,PDF 輸出非常有用。 HTML 輸出會產生一個包含嵌入式 base64 映像的獨立檔案-方便用於電子郵件範本和 Web 入口網站。
IronBarcode 支援哪些跨平台 .NET 環境?
IronBarcode 支援在所有主流 .NET 平台上產生條碼。 部署到
| 平台 | 支援的運行時 | 典型應用案例 |
|---|---|---|
| Windows | .NET 10、.NET 8、.NET Framework 4.6.2+ | 桌面應用程式、Windows 服務、IIS Web 伺服器 |
| Linux | .NET 10、.NET 8、.NET Core 3.1+ | Docker容器、AWS Lambda、Azure Functions |
| macOS | .NET 10、.NET 8 | 開發環境、macOS 伺服器應用程式 |
| 移動 | .NET MAUI,Xamarin | iOS 和 Android 行動應用程式 |
| 雲 | Azure、AWS、Google 雲 | 無伺服器函數、容器化微服務 |
IronBarcode Docker 設定指南提供了容器化部署所需的系統庫的詳細資訊。 在 Linux 上執行時,通常需要在 Docker 映像中安裝 libgdiplus 和 libc6-dev。 在 Alpine Linux 上,需要略有不同的軟體包集——該指南涵蓋了 Ubuntu/Debian 和 Alpine Dockerfile。
對於 AWS Lambda 部署, AWS Lambda 部署演練說明如何在部署包中捆綁原生依賴項,以及如何配置記憶體限制來處理條碼渲染工作負載。
如何在.NET中遵循條碼生成的最佳實務?
在 C# 應用程式中產生條碼影像時,遵循一套一致的做法,可以決定條碼在現場能否可靠地掃描,還是會在銷售點或倉庫車間掃描失敗。 以下準則適用於任何條碼格式。
根據您的使用情境選擇合適的條碼格式。選擇與您的掃描環境和資料需求相符的格式。 對於超過 80 個字元的 URL 和資料有效載荷,請使用二維碼。 對於庫存和物流,如果字母數字資料必須能夠裝入緊湊的線性符號中,請使用代碼 128。 對於需要在 GS1 系統中註冊的零售產品,請使用 EAN-13 或 UPC-A。 IronBarcode 的條碼格式比較頁面提供了所有支援類型、其容量限制和建議用例的並排參考。
務必預留足夠的空白區域。條碼周圍的空白區域(稱為空白區域)與條碼本身同樣重要。 掃描器利用它來偵測符號的起始位置和結束位置。 使用 SetMargins() 方法,在數字顯示時每邊至少添加 10 像素的邊距,在列印輸出時至少添加 2.5 毫米的邊距。 侵入靜默區是生產環境中掃描失敗最常見的原因之一。
進行任何樣式變更後都要進行驗證。調整顏色、套用漸層或調整大小為非標準尺寸後,請在 GeneratedBarcode 物件上呼叫 Verify()。 如果傳回 false,使用標準硬體將無法可靠地掃描您的條碼。 要么增加對比度,要么降低樣式更改的複雜性。
對於大批次輸出,請使用批次產生模式。如果您的應用程式產生數千個條碼(例如,產品標籤或出貨清單),請循環處理它們並重複使用相同的樣式配置。 避免在循環內載入字體資源或配置對象,因為這會造成不必要的開銷。 IronBarcode 批次條碼產生範例示範了一種高效的循環模式,並實現了一致的輸出。
在多種掃描器型號和光照條件下進行測試。條碼掃描器對低對比顏色、小模組尺寸和列印品質的容忍度各不相同。 部署前,至少使用兩種不同的掃描器類型測試列印的條碼。 對於螢幕上顯示的二維碼,請在明亮和昏暗的光線下使用手機相機進行測試。 GS1 條碼驗證標準頁面提供了零售條碼符號品質等級的權威指導。
請遵守數據容量限制。每種條碼格式都有其最大資料容量。 Code 128 最多可以編碼大約 48 個字符,超過這個寬度,符號就太寬,無法在標準標籤尺寸上列印。 二維碼容量取決於糾錯等級——在 H 級,最大容量約為 1,273 個字母數字字元。 超出容量限制會導致函式庫拋出異常或靜默降低品質。 查看維基百科上的二維碼資料容量參考,即可快速取得容量表。
遵循 .NET 釋放模式。 GeneratedBarcode 和 ToStream() 返回的任何流都實現了 IDisposable。 將它們包裝在 using 語句中,以便及時釋放未託管資源,尤其是在條碼產生是按請求進行的、高吞吐量的 Web 應用程式中。
了解常見的故障模式也有助於建立更具彈性的生成程式碼。 掃描失敗的三大最常見原因是:靜區不足、條碼顏色與背景顏色過於接近、條碼縮放小於所選格式的最小模組尺寸。 IronBarcode 的 Verify() 方法在運行時捕獲所有這三個。
若要從產生的影像中讀取條碼(用於往返測試或掃描上傳的檔案),請參閱IronBarcode 條碼閱讀器指南。 讀取器 API 與寫入器 API 一樣簡單,並且支援同樣廣泛的格式。
IronBarcode 遵循的Code 128 標準為 ISO/IEC 15417 , QR 碼標準為 ISO/IEC 18004 。 查閱目標條碼類型的相關標準有助於了解程式庫必須在哪些限制條件下運作。
下一步計劃是什麼?
本指南涵蓋了使用 IronBarcode 在 C# 中生成條碼圖像——從 NuGet 安裝到 Code 128、QR 碼和 EAN-13 生成,使用流暢 API 進行高級樣式設置,多格式導出,跨平台部署以及生產最佳實踐。
如需了解更多信息,請瀏覽以下資源:
- IronBarcode 完整 API 參考--
BarcodeWriter、GeneratedBarcode以及所有枚舉的完整方法文檔 IronBarcode條碼閱讀器教學-從影像、PDF和串流媒體讀取和解碼條碼 -大量條碼產生範例-適用於標籤列印和運輸工作流程的大批量產生模式 IronBarcode 的許可和定價——選項起價為 $799
下載 IronBarcode,為您的 .NET 應用程式添加條碼功能,或開始 30 天免費試用,無需許可證金鑰即可在您的環境中產生條碼圖像。
常見問題解答
如何使用NuGet套件管理器安裝IronBarcode?
打開Visual Studio,導航到工具 > NuGet套件管理器 > 套件管理器控制台,運行:Install-Package BarCode。或者,在NuGet套件管理器UI中搜尋'IronBarcode'並點選安裝。
使用IronBarcode可以生成哪些類型的條碼?
IronBarcode支援生成各種條碼類型,包括QR Code、Code 128、Code 39、Code 93、UPC-A、UPC-E、EAN-13、EAN-8、PDF-417、Data Matrix、Aztec等。
IronBarcode 可以生成不同圖像格式的 BarCode 嗎?
是的,IronBarcode可以使用SaveAsPng、SaveAsJpeg、SaveAsTiff、SaveAsPdf和SaveAsHtmlFile方法生成PNG、JPEG、BMP、TIFF、PDF和HTML格式的條碼。
IronBarcode與.NET 10兼容嗎?
是的,IronBarcode完全兼容.NET 10、.NET 8、.NET 6、.NET Core、.NET Standard和.NET Framework,允許您在跨平台應用中整合條碼生成。
如何使用IronBarcode自訂條碼的外觀?
IronBarcode在GeneratedBarcode類上提供了一個流利API。鏈接方法如ResizeTo()、SetMargins()、ChangeBarCodeColor()、AddAnnotationTextAboveBarcode()和AddBarcodeValueTextBelowBarcode()來自訂外觀。造型後請務必調用Verify()以確認條碼仍然可掃描。
IronBarcode 支援條碼讀取和掃描嗎?
是的,IronBarcode支援使用BarcodeReader類及其Read方法從圖像、PDF和流中讀取和掃描條碼。
可以批量生成條碼嗎?
是的,IronBarcode支援批量生成。遍歷您的資料循環,對每項使用BarcodeWriter.CreateBarcode()並應用您的標準樣式鏈。為提高效率,在循環外重用配置對象。
IronBarcode 是否有試用版?
是的,IronBarcode提供30天免費試用授權。訪問 ironsoftware.com/csharp/barcode/licensing/#trial-license 獲取試用金鑰,並在評估期間使用所有功能且無水印。

