跳過到頁腳內容
使用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");
$vbLabelText   $csharpLabel

BarcodeWriterEncoding的條碼格式。 返回的GeneratedBarcode引用提供樣式方法和導出選項,可以保存為PNG, JPEG, BMP, TIFF, PDF或HTML。

輸出

使用IronBarcode的條碼生成器C#原始碼:圖像2 - 條碼輸出

Code128是物流和庫存系統的骨幹條碼。 它以簡潔的線性格式編碼大寫字母、小寫字母、數字和特殊字符。 這種條碼類型確保在全球運輸設施和零售環境中的正確掃描。使用SaveAsPng()方法時,IronBarcode自動設置默認解析度,適合屏幕顯示和標準印表機。

對於需要直接從網站端點提供的應用程式,您可以使用ToStream()而不是保存到磁碟。 可以將流直接寫入ASP.NET Core中的FileStreamResult

如何創建QR Code和其他2D條碼類型?

IronBarcode支持所有主要條碼格式,包括2D條碼類型如QR Code和Data Matrix。 用類似的語法生成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");
$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");
$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");
$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();
$vbLabelText   $csharpLabel

ToStream()方法返回與ASP.NET Core Web API和Blazor應用程式兼容的條碼數據。 System.Drawing.Bitmap引用,用於進一步的圖像處理。 有關在現有PDF文件上加蓋條碼的詳細信息,請參見<IronBarcode PDF條碼教程。

輸出

使用IronBarcode的條碼生成器C#原始碼:圖像5 - PNG條碼輸出

使用IronBarcode的條碼生成器C#原始碼:圖像6 - HTML條碼輸出

選擇合適的格式取決於您的下游工作流程。 PNG是無損格式,是用於Web和應用程式UI的良好預設格式。 TIFF則適合在對顏色精準度要求高的印刷生產管道中使用。 當您需要打印店能直接處理的準備好打印的文檔時,PDF輸出很有用。 HTML輸出會生成一個嵌入base64圖像的獨立文件——方便用於電子郵件範本和網頁入口。

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 Functions
macOS .NET 10, .NET 8 開發環境、macOS伺服器應用程式
行動端 .NET MAUI, Xamarin iOS和Android行動應用程式
雲端 Azure, AWS, Google 雲端 無伺服器功能、容器化微服務

IronBarcode Docker設置指南提供了有關容器化部署所需系統程式庫的詳細信息。 在Linux上運行時,通常需要在Docker映像中安裝libc6-dev。 在Alpine Linux上,需要稍微不同的一組套件——指南涵蓋了Ubuntu/Debian和Alpine Dockerfiles。

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

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

在C#應用程式中生成條碼圖像時,遵循一致的實踐差異是在現場能夠可靠掃描的條碼和在銷售點或倉庫地板上失敗的條碼之間的區別。 以下準則適用於您選擇的任何條碼格式。

為您的使用案例選擇合適的條碼格式。選擇一種與您的掃描環境和數據要求匹配的格式。 對於超過80個字符的URL和數據負載,請使用QR碼。 在必須將字母數字數據裝在緊湊線性符號中的庫存和物流中使用Code 128。 對於需要在GS1系統中註冊的零售產品,使用EAN-13或UPC-A。 IronBarcode的條碼格式比較頁面提供了所有支持類型的並排參考,其容量限制和推薦的用例。

始終包括足夠的安靜區域。條碼周圍的空白區域——被稱為安靜區域——和條形一樣重要。 掃描器使用它來檢測符號的開始和結束。 使用SetMargins()方法在每側增加至少10像素的邊距用於數位顯示,對於列印輸出,則至少增加2.5毫米。 削減安靜區域是生產中掃描失敗的最常見原因之一。

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

對於大批量輸出,使用批處理生成模式。如果您的應用程式生成數千個條碼——例如產品標籤或運送清單——請在循環中處理它們,並重用相同的樣式配置。 避免在循環內加載字體資產或配置物件,因為這會產生不必要的開銷。 IronBarcode批量條碼生成示例展示了一種有效的循環模式,具有一致的輸出。

在多種掃描器型號和照明條件下進行測試。條碼掃描器在對低對比色、小模組大小和印刷質量的容差上各不相同。 在部暑之前,至少使用兩種不同的掃描器類型測試已印條碼。 對於屏幕上顯示的QR碼,在明亮和昏暗的光線下使用手機相機進行測試。 GS1條碼驗證標準頁面提供了零售條碼符號質量分級的權威指導。

尊重數據容量限制。每種條碼格式都有最大數據容量。 Code 128可以在符號過寬以至於不能以標準標籤尺寸打印之前,舒適地編碼大約48個字符。 QR碼容量取決於錯誤更正級別——在H級時,最大容量約為1,273個字母數字字符。 超出容量會強迫程式庫要麼拋出異常,要麼默默地降低質量。 查看Wikipedia上的QR碼數據容量參考以獲取快速容量表。

遵循.NET釋放模式。IDisposable。 將它們包裝在using聲明中以及時釋放非托管資源,特別是在條碼生成每次請求發生於高吞吐量網頁應用程式中時。

了解常見故障模式也有助於您編寫更具彈性的生成代碼。 掃描失敗的三個最常見原因是:不夠的安靜區域,條形顏色太接近背景顏色,條碼縮小到選擇的格式的最小模組尺寸以下的情況。 IronBarcode的Verify()方法在運行時捕捉到所有三個問題。

對於從生成的圖像中讀取條碼——進行回測或掃描上傳的文件——請參見IronBarcode條碼讀取器指南。 讀取器API反映了寫入器API的簡單性,並支持相同廣泛的格式。

Code 128的ISO/IEC 15417標準QR碼的ISO/IEC 18004標準定義了IronBarcode遵循的技術規格。 檢視您目標條碼類型的相關標準有助於您理解程式庫必須工作的約束條件。

你的下一步行動是什麼?

本指南涵蓋了使用IronBarcode在C#中生成條碼圖像——從NuGet安裝到生成Code 128, QR碼和EAN-13、高級樣式設計、跨平台部暑及生產最佳實踐。

想要進一步瞭解,請探索以下資源:

下載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 獲取試用金鑰,並在評估期間使用所有功能且無水印。

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

鋼鐵支援團隊

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