跳至頁尾內容
使用IRONBARCODE

如何在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

使用 IronBarcode 的條碼生成器 C# 源程式碼:圖像 1 - 安裝

NuGet 套件支持 .NET 10、.NET 8、.NET 6、.NET Core、.NET Standard 和 .NET Framework,這使其與 Windows 應用程式和跨平台的 .NET 應用程式相容。 IronBarcode 支援部署到 Docker 容器、Azure 和 Linux 伺服器。 在 IronBarcode 的文件頁面Iron Software GitHub 項目上查找更多詳細資訊和參考文件。

安裝後,您會看到您的項目中可用的 IronBarCode 命名空間。 該程式庫在 Windows 上不需要額外的運行時依賴項——在 Linux 上,您可能需要按照 IronBarcode Linux 部署指南中所記載的安裝幾個系統庫。

如何在 C# 中生成簡單的條碼影像文件?

只需幾行程式碼即可建立條碼圖像。 以下範例展示了條碼生成,該範例保存 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");
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")
$vbLabelText   $csharpLabel

BarcodeWriter.CreateBarcode() 方法接受要編碼的字串和來自 BarcodeWriterEncoding 的條碼格式。 返回的 GeneratedBarcode 參考提供樣式化方法和導出選項以保存為 PNG、JPEG、BMP、TIFF、PDF 或 HTML。

輸出

使用 IronBarcode 的條碼生成器 C# 源程式碼:圖像 2 - 條碼輸出

Code128 是物流和庫存系統中常用的條碼。 它以緊湊的線性格式編碼大寫字母、小寫字母、數字和特殊字元。 這種條碼型別確保在全球的運輸設施和零售環境中正常掃描。當您使用 SaveAsPng() 方法時,IronBarcode 會自動設置適合於螢幕顯示和標準列印機的預設解析度。

對於需要直接從 Web 端點提供條碼圖像的應用程式,您可以使用 ToStream() 而不是保存到磁碟。 該流可以直接寫入 ASP.NET Core 的 HttpResponse,或從控制器操作返回為 FileStreamResult

如何建立 QR 程式碼及其他 2D 條碼型別?

IronBarcode 支持所有主要條碼格式,包括 QR 程式碼和 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")
$vbLabelText   $csharpLabel

QR 程式碼條碼型別在儲存 URL 和更大資料有效載荷方面表現出色。 該程式庫自動處理錯誤更正,確保即使部分受損,條碼仍然可掃描。 預設情況下,IronBarcode 使用錯誤更正級別 M(中等),可從約 15% 的資料丟失中恢復——您可以將其提高到級別 H,以用於可能被劃傷或部分遮擋的列印條碼。

輸出

使用 IronBarcode 的條碼生成器 C# 源程式碼:圖像 3 - QR 程式碼輸出

對於需要 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")
$vbLabelText   $csharpLabel

EAN-13 是全球零售銷售點系統的標準格式。該程式庫會自動計算校驗位,因此您只需提供有效 GTIN-13 的前 12 位。 如果您提供的校驗位不匹配,IronBarcode 將拋出描述性異常,而不是靜默生成不可讀條碼。

輸出

使用 IronBarcode 的條碼生成器 C# 源程式碼:圖像 4 - EAN-13 條碼輸出

除了 Code 128、QR Code 和 EAN-13,該程式庫還支持 Code 39、Code 93、UPC-A、UPC-E、ITF、Codabar、PDF-417、Aztec 和 Data Matrix。 完整的支持格式列表可在 IronBarcode 條碼型別參考頁面上找到。

如何使用高級樣式選項建立風格化的 QR 程式碼?

專業條碼生成通常需要高級樣式選項來調整顏色和新增註釋。 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")
$vbLabelText   $csharpLabel

流暢的 API 可讓您連結樣式化方法,以在一條語句中調整顏色、設置邊距並新增文字。 Verify() 方法指示您的條碼是否保持可機器讀取,這確保在應用非標準顏色或調整到小尺寸後,生產中能夠正確掃描。

將條色改為非常淺的色調,或淺藍色與白色背景的對比度較低,可能會導致條碼無法掃描。 在任何顏色更改之後,請務必調用 Verify()。 如果驗證失敗,請增加對比度或還原為黑色線條。 條碼樣式化和自訂指南詳細介紹了所有可用的樣式方法。

要在整個產品目錄中生成具有一致樣式的多個條碼,請構建一個助手方法,將您的標準樣式鏈應用到每個 GeneratedBarcode 實例。 這種方法確保無論生成多少圖片都能保持統一的邊距、字體大小和顏色。

如何將條碼導出為不同的圖像格式?

以多種格式生成條碼圖像以適應不同的使用場景。 該程式庫保存為 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()
$vbLabelText   $csharpLabel

ToStream() 方法返回與 ASP.NET Core web API 和 Blazor 應用程式相容的條碼資料。 ToBitmap() 方法提供 System.Drawing.Bitmap 參考以進一步進行圖像操作。 如需在現有的 PDF 文件上蓋章條碼,請參見 IronBarcode PDF 條碼教程

輸出

使用 IronBarcode 的條碼生成器 C# 源程式碼:圖像 5 - PNG 條碼輸出

使用 IronBarcode 的條碼生成器 C# 源程式碼:圖像 6 - HTML 條碼輸出

選擇合適的格式取決於您的後續工作流。 PNG 是無損的,是 web 和應用程式 UI 的良好預設選項。 TIFF 適合要求顏色準確性的印刷生產管線。 當您需要一個列印店可以直接處理的即用型文件時,PDF 輸出很有用。 HTML 輸出生成一個帶有嵌入的 base64 圖像的自包含文件——方便用於電子郵件模板和 web 門戶。

IronBarcode 支持哪些跨平台 .NET 環境?

IronBarcode 支持在所有主要 .NET 平台上生成條碼。 可部署到:

IronBarcode 部署平台支持
平台 支持的運行時 典型用例
Windows .NET 10、.NET 8, .NET Framework 4.6.2+ 桌面應用程式、Windows 服務、IIS 網頁伺服器
Linux .NET 10、.NET 8、.NET Core 3.1+ Docker 容器、AWS Lambda、Azure 函式
macOS .NET 10、.NET 8 開發環境、macOS 伺服器應用程式
行動 .NET MAUI、Xamarin iOS 和 Android 移動應用程式
雲端 Azure、AWS、Google 雲端 無伺服器函式、容器化微服務

IronBarcode Docker 設置指南提供了容器化部署所需系統庫的詳細資訊。 在 Linux 上運行時,您通常需要在您的 Docker 映像中安裝 libgdipluslibc6-dev。 在 Alpine Linux 上,需要一組略有不同的包 - 指南涵蓋了 Ubuntu/Debian 和 Alpine Dockerfile。

對於 AWS Lambda 部署,AWS Lambda 部署指南解釋了如何在部署包中捆綁本機依賴項和配置記憶體限制以處理條碼渲染工作負載。

如何遵循在 .NET 中生成條碼的最佳實踐?

在 C# 應用程式中生成條碼圖像時遵循一致的實踐集,使得在現場可靠掃描的條碼與在銷售點或倉庫樓層失敗的條碼之間有了不同。 以下指南適用於您選擇的任何條碼格式。

為您的用例選擇正確的條碼格式。選擇一種與您的掃描環境和資料需求相匹配的格式。 使用 QR 程式碼存放 URLs 和超過 80 個字元的資料有效負載。 在需要將字母數字資料放入緊湊線性符號的情況下,使用 Code 128 進行庫存和物流管理。 對於零售產品,需要在 GS1 系統中註冊,請使用 EAN-13 或 UPC-A。 IronBarcode 的 條碼格式比較頁面提供所有支持型別的並排參考、其容量限制和推薦的用例。

始終包括足夠的安靜區域。條碼周圍的空白區域——稱為安靜區域——與條一樣重要。 掃描器使用它來檢測符號的開始和結束位置。 使用 SetMargins() 方法為數字顯示新增至少 10 像素的內距,為列印輸出新增至少 2.5 mm。 切入安靜區域是生產中掃描失敗的最常見原因之一。

在任何樣式更改後進行驗證。在調整顏色、應用漸變或調整為非標準尺寸後,請在 GeneratedBarcode 物件上調用 Verify()。 如果返回 false,您的條碼將無法可靠地與標準硬體掃描。 要麼增加對比,要麼降低樣式更改的複雜性。

使用批量生成模式進行高容量輸出。如果您的應用程式生成數千個條碼——例如產品標籤或運貨單——則在迴圈中處理它們並重用相同的樣式配置。 避免在迴圈內載入字體資源或配置物件,因為這會產生不必要的開銷。 IronBarcode 批量條碼生成範例展示了一個效率高的迴圈模式,具有一致的輸出。

在多個掃描器型號和光照條件下進行測試。條碼掃描器在低對比度顏色、小模塊尺寸和列印品質上的容忍度有所不同。 在部署之前,用至少兩種不同的掃描器型號測試印刷條碼。 對於在螢幕上顯示的 QR 程式碼,請在亮和暗光線下使用手機相機測試。 GS1 條碼驗證標準頁面提供關於零售條碼符號質量分級的權威指南

尊重資料容量限制。每種條碼格式都有最大資料容量。 Code 128 可以在符號變得過於寬而無法在標準標籤尺寸上進行列印之前,舒適地編碼約 48 個字元。 QR 程式碼容量取決於錯誤更正級別——在 H 級時,最大約為 1,273 個字母數字字元。 超過容量會迫使程式庫拋出異常或默默地降低質量。 查看 QR 程式碼維基百科上的資料容量參考以獲取快速的容量表。

遵循 .NET 釋放模式。GeneratedBarcode 和任何由 ToStream() 返回的流均實施 IDisposable。 將它們包裹在 using 語句中,以便及時釋放未管理的資源,特別是在高吞吐的 web 應用程式中,條碼生成是在每個請求上進行的。

了解常見故障模式還可以幫助您構建更有彈性的生成程式碼。 掃描失敗的三個最常見的原因是:安靜區域不夠,條色與背景色太接近,以及條碼縮放到選擇格式的最小模塊尺寸之下。 IronBarcode 的 Verify() 方法在運行時捕獲所有三種情況。

如需從生成圖像中回讀條碼——用於全程測試或掃描上傳的文件——請參閱 IronBarcode 條碼閱讀器指南。 閱讀器 API 在簡單性上與編寫器 API 一樣,並且支援同樣廣泛的格式範圍。

Code 128 的 ISO/IEC 15417 標準QR 程式碼的 ISO/IEC 18004 標準定義了 IronBarcode 符合的技術規範。 查看您目標條碼型別相關的標準有助於您理解程式庫必須在其中工作的限制。

您的下一步是什麼?

本指南涵蓋了如何使用 IronBarcode 在 C# 中生成條碼圖像——從 NuGet 安裝到 Code 128、QR code 和 EAN-13 生成、使用流暢 API 進行高級樣式化、多格式導出、跨平台部署和生產最佳實踐。

要進一步了解,請探索這些資源:

下載 IronBarcode 以向您的 .NET 應用程式新增條碼功能,或者開始免費 30 天試用以便在未具授權金鑰的環境中生成條碼圖像。

常見問題

如何使用NuGet套件管理器安裝IronBarcode?

打開Visual Studio,導航至工具 > NuGet套件管理器 > 套件管理器控制台,然後運行:Install-Package BarCode。或者,在NuGet套件管理器UI中搜尋'IronBarcode'並點擊安裝。

使用IronBarcode可以生成哪些型別的條碼?

IronBarcode支持生成多種條碼型別,包括QR碼、Code 128、Code 39、Code 93、UPC-A、UPC-E、EAN-13、EAN-8、PDF-417、Data Matrix、Aztec等。

IronBarcode能夠以不同的圖片格式生成條碼嗎?

是的,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批量生成條碼嗎?

是的,IronBarcode支持批量生成。在迴圈中迭代您的資料,為每個項目調用BarcodeWriter.CreateBarcode(),並套用您的標準樣式鏈。在迴圈外重複使用配置物件以提高效率。

IronBarcode有試用版可以使用嗎?

是的,IronBarcode提供了免費的30天試用授權。請造訪ironsoftware.com/csharp/barcode/licensing/#trial-license以獲得試用金鑰並在評估期間使用所有功能而無水印。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

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