跳過到頁腳內容
使用IRONBARCODE

在ASP.NET Core Web Apps中生成條碼

將條碼生成整合到ASP.NET web應用程式中,可以為庫存管理、產品追蹤和文件自動化提供強大功能。 此教學展示如何在.NET Core專案中使用IronBarCode生成條碼 -- 一個支持超過30種格式的條碼程式庫,包括QR Code、Data Matrix、Code 128和UPC A。

以下快速範例顯示如何創建Code 128條碼並將其作為PNG圖片從MVC控制器動作返回:

using IronBarCode;
using Microsoft.AspNetCore.Mvc;

public IActionResult GenerateBarcode(string data)
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128);
    barcode.ResizeTo(400, 120);
    barcode.AddBarcodeValueTextBelowBarcode();
    byte[] barcodeBytes = barcode.ToPngBinaryData();
    return File(barcodeBytes, "image/png");
}
using IronBarCode;
using Microsoft.AspNetCore.Mvc;

public IActionResult GenerateBarcode(string data)
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128);
    barcode.ResizeTo(400, 120);
    barcode.AddBarcodeValueTextBelowBarcode();
    byte[] barcodeBytes = barcode.ToPngBinaryData();
    return File(barcodeBytes, "image/png");
}
$vbLabelText   $csharpLabel

開始您的免費試用以便跟隨下面的完整教學程式碼範例。

如何在.NET Core專案中安裝條碼程式庫?

將條碼生成能力加入ASP.NET Core web應用程式需要安裝IronBarCode的NuGet套件。 打開Visual Studio並使用套件管理控制台安裝依賴項:

Install-Package BarCode

此套件兼容.NET Core 6、7、8、10及更新版本,以及.NET Framework 4.6.2+。 此程式庫自動處理所有依賴項,無需額外的條碼字型或系統配置。 安裝完成後,將命名空間引用添加到控制器或服務文件中:

using IronBarCode;
using IronBarCode;
$vbLabelText   $csharpLabel

支持哪些.NET版本和平台?

IronBarCode針對所有現代.NET執行環境:

  • .NET 10, 9, 8, 7, 6 -- 完全支持的LTS和STS版本
  • .NET Framework 4.6.2+ -- 支持的傳統應用程式
  • 部署目標 -- Windows、Linux、macOS、Docker、Azure、AWS
  • 行動目標 -- 透過.NET MAUI支持Android和iOS

不需要外部GD程式庫、本地codec或條碼字型安裝。 此程式庫完全自包含,並在內部解決所有編碼邏輯。

如何將命名空間添加到控制器?

安裝NuGet套件後,請在需要條碼生成的控制器、服務或Razor Page模型頂部引用IronBarCode命名空間:

using IronBarCode;
using Microsoft.AspNetCore.Mvc;
using IronBarCode;
using Microsoft.AspNetCore.Mvc;
$vbLabelText   $csharpLabel

此單一BarcodeReader,以及所有支持的類型以進行生成和讀取條碼。

如何在ASP.NET Core Web應用程式中生成條碼?

在MVC控制器中創建條碼涉及IronBarCode的BarcodeWriter類。 以下範例演示了一個完整的控制器動作,根據用戶提供的URL或文本創建Code 128條碼:

using IronBarCode;
using Microsoft.AspNetCore.Mvc;

public class BarcodeController : Controller
{
    public IActionResult GenerateBarcode(string data)
    {
        // Generate barcode from input data
        GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
            data,
            BarcodeWriterEncoding.Code128);
        barcode.ResizeTo(400, 120);
        barcode.AddBarcodeValueTextBelowBarcode();
        // Return as image for display in browser
        byte[] barcodeBytes = barcode.ToPngBinaryData();
        return File(barcodeBytes, "image/png");
    }
}
using IronBarCode;
using Microsoft.AspNetCore.Mvc;

public class BarcodeController : Controller
{
    public IActionResult GenerateBarcode(string data)
    {
        // Generate barcode from input data
        GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
            data,
            BarcodeWriterEncoding.Code128);
        barcode.ResizeTo(400, 120);
        barcode.AddBarcodeValueTextBelowBarcode();
        // Return as image for display in browser
        byte[] barcodeBytes = barcode.ToPngBinaryData();
        return File(barcodeBytes, "image/png");
    }
}
$vbLabelText   $csharpLabel

輸出條碼圖像

ASP .NET條碼生成:為您的Web應用程式構建條碼生成器:圖像1 - 生成的條碼

BarcodeWriter.CreateBarcode()方法將條碼數據作為第一個參數傳入,編碼格式作為第二個。 這種方法根據用戶輸入或數據庫值動態創建條碼。

如需將條碼圖片保存到專案資料夾,請使用SaveAsImage()方法:

barcode.SaveAsImage("wwwroot/images/generated-barcode.png");
barcode.SaveAsImage("wwwroot/images/generated-barcode.png");
$vbLabelText   $csharpLabel

該程式庫支持多種輸出格式,包括PNG、GIF、BMP、SVG和JPEG。 您還可以導出條碼為HTML,以直接嵌入到網頁中。

如何將條碼作為文件下載返回?

要將條碼作為可下載文件返回,而不是內聯圖像,請在響應中設置Content-Disposition標頭:

public IActionResult DownloadBarcode(string data)
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128);
    barcode.ResizeTo(400, 120);
    byte[] pdfBytes = barcode.ToPdfBinaryData();
    return File(pdfBytes, "application/pdf", "barcode.pdf");
}
public IActionResult DownloadBarcode(string data)
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128);
    barcode.ResizeTo(400, 120);
    byte[] pdfBytes = barcode.ToPdfBinaryData();
    return File(pdfBytes, "application/pdf", "barcode.pdf");
}
$vbLabelText   $csharpLabel

這種模式對於運送標籤生成、產品標籤工作流程以及任何需要終端用戶直接保存或打印條碼文件的情境都很有用。

網頁應用程式支持哪些條碼類型?

IronBarCode支持超過30種格式。 以下是最常用類型的創建細節:

QR Code生成

// Create QR Code with custom size
GeneratedBarcode qrCode = QRCodeWriter.CreateQrCode(
    "https://example.com/product/12345",
    500,
    QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("product-qr.png");
// Create QR Code with custom size
GeneratedBarcode qrCode = QRCodeWriter.CreateQrCode(
    "https://example.com/product/12345",
    500,
    QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("product-qr.png");
$vbLabelText   $csharpLabel

輸出QR Code

ASP .NET條碼生成:為您的Web應用程式構建條碼生成器:圖像2 - ASP .NET條碼生成相關的6幅圖像中的圖像2

QR Code生成支持誤差更正級別,可決定在保留可讀性的情況下可以損壞多少代碼。 對於預期會有物理磨損的列印QR Code應用,請使用中等或高級別。 了解更多QR Code自定義選項

Data Matrix和其他2D格式

// Create Data Matrix barcode
GeneratedBarcode dataMatrix = BarcodeWriter.CreateBarcode(
    "DMX-2024-001",
    BarcodeWriterEncoding.DataMatrix);
dataMatrix.SaveAsGif("datamatrix.gif");
// Create Data Matrix barcode
GeneratedBarcode dataMatrix = BarcodeWriter.CreateBarcode(
    "DMX-2024-001",
    BarcodeWriterEncoding.DataMatrix);
dataMatrix.SaveAsGif("datamatrix.gif");
$vbLabelText   $csharpLabel

輸出Data Matrix

ASP .NET條碼生成:為您的Web應用程式構建條碼生成器:圖像3 - 生成的Data Matrix

Data Matrix條碼在需要緊湊、高密度編碼的情境下表現出色。 該程式庫還生成PDF417、Aztec和MaxiCode格式。 這些2D條碼類型存儲的數據量比線性格式多得多,同時保持了可靠的掃描精度。

線性條碼 (UPC、EAN、Code 39)

// Create UPC-A barcode for retail products
GeneratedBarcode upcBarcode = BarcodeWriter.CreateBarcode(
    "012345678905",
    BarcodeWriterEncoding.UPCA);
upcBarcode.SaveAsPng("upc-barcode.png");
// Create UPC-A barcode for retail products
GeneratedBarcode upcBarcode = BarcodeWriter.CreateBarcode(
    "012345678905",
    BarcodeWriterEncoding.UPCA);
upcBarcode.SaveAsPng("upc-barcode.png");
$vbLabelText   $csharpLabel

輸出

ASP .NET條碼生成:為您的Web應用程式構建條碼生成器:圖像4 - 生成的條碼

UPC A和EAN條碼包括自動校驗和驗證,以防止條碼生成過程中的編碼錯誤。 查看支持格式的完整列表,請參閱條碼格式參考

如何自定義和設計條碼圖像?

為web應用程式設計條碼涉及調整顏色、字型、邊距和註釋。 流暢的API使自定義變得簡單:

GeneratedBarcode styledBarcode = BarcodeWriter.CreateBarcode(
    "STYLED-2024",
    BarcodeWriterEncoding.Code128);
// Apply styling
styledBarcode.ResizeTo(450, 150);
styledBarcode.SetMargins(20);
styledBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
styledBarcode.AddAnnotationTextAboveBarcode("Product ID:");
styledBarcode.AddBarcodeValueTextBelowBarcode();
// Export to multiple formats
styledBarcode.SaveAsPng("styled-barcode.png");
styledBarcode.SaveAsPdf("styled-barcode.pdf");
GeneratedBarcode styledBarcode = BarcodeWriter.CreateBarcode(
    "STYLED-2024",
    BarcodeWriterEncoding.Code128);
// Apply styling
styledBarcode.ResizeTo(450, 150);
styledBarcode.SetMargins(20);
styledBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
styledBarcode.AddAnnotationTextAboveBarcode("Product ID:");
styledBarcode.AddBarcodeValueTextBelowBarcode();
// Export to multiple formats
styledBarcode.SaveAsPng("styled-barcode.png");
styledBarcode.SaveAsPdf("styled-barcode.pdf");
$vbLabelText   $csharpLabel

設計樣式的條碼圖像

ASP .NET條碼生成:為您的Web應用程式構建條碼生成器:圖像5 - 輸出的風格條碼

SetMargins()方法在條碼周圍添加了空白,以提高掃描器的可讀性。 您可以調整註釋文本的字型設置、更改字型系列和字型大小,並廣泛自定義條碼樣式。 程式庫使用系統字型呈現文本,不需要外部條碼字型。

如何直接在Razor View中嵌入條碼?

對於ASP.NET MVC檢視,生成條碼作為Base64字符串,直接嵌入HTML中而不需要將文件保存到磁碟:

public IActionResult DisplayBarcode()
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
        "INV-2024-0042",
        BarcodeWriterEncoding.Code128);
    string base64Image = barcode.ToDataUrl();
    ViewBag.BarcodeImage = base64Image;
    return View();
}
public IActionResult DisplayBarcode()
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
        "INV-2024-0042",
        BarcodeWriterEncoding.Code128);
    string base64Image = barcode.ToDataUrl();
    ViewBag.BarcodeImage = base64Image;
    return View();
}
$vbLabelText   $csharpLabel

顯示的條碼

ASP .NET條碼生成:為您的Web應用程式構建條碼生成器:圖像6 - 條碼顯示在我們的瀏覽器中

在Razor檢視中,將其顯示在<div>元素內:

<div class="barcode-container">
    <img src="@ViewBag.BarcodeImage" alt="Generated Barcode" />
</div>
<div class="print-actions">
    <button onclick="window.print()">Print Barcode</button>
</div>
<div class="barcode-container">
    <img src="@ViewBag.BarcodeImage" alt="Generated Barcode" />
</div>
<div class="print-actions">
    <button onclick="window.print()">Print Barcode</button>
</div>
HTML

此方法消除了將條碼圖像保存到檔案系統的需求,保持web服務無狀態。 此完整的API參考文檔記錄了所有可用的方法和屬性。

如何在ASP.NET Core中讀取和掃描條碼?

從上傳的圖像或檔案流中讀取條碼,通過BarcodeReader類處理。 這在接收工作流程、退貨處理和需要在伺服器端解碼掃描條碼的情況下非常有用:

using IronBarCode;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

public class BarcodeScanController : Controller
{
    public IActionResult ScanBarcode(IFormFile uploadedImage)
    {
        using var stream = uploadedImage.OpenReadStream();
        var results = BarcodeReader.Read(stream);
        if (results.Count > 0)
        {
            string decodedValue = results[0].Value;
            return Ok(new { barcode = decodedValue });
        }
        return BadRequest("No barcode detected in image.");
    }
}
using IronBarCode;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

public class BarcodeScanController : Controller
{
    public IActionResult ScanBarcode(IFormFile uploadedImage)
    {
        using var stream = uploadedImage.OpenReadStream();
        var results = BarcodeReader.Read(stream);
        if (results.Count > 0)
        {
            string decodedValue = results[0].Value;
            return Ok(new { barcode = decodedValue });
        }
        return BadRequest("No barcode detected in image.");
    }
}
$vbLabelText   $csharpLabel

System.Drawing.Bitmap對象。 它自動檢測條碼格式並返回BarcodeResult對象的集合,每個對象包含解碼值、格式類型和圖像中的位置。 當多個條碼出現在單個圖像中時 -- 例如,在倉庫貨架照片上 -- 讀取器會返回集合中的所有檢測值,而不僅僅是第一個。

對於高吞吐量的ASP.NET應用程式,性能也是值得考量的。 讀取器支持感興趣區域掃描,這會在分析之前將圖像裁剪為特定的像素矩形。 當條碼總是出現在圖像的已知區域時,這大大減少了處理時間。

對於如調整低質量圖像的對比度或微調檢測敏感度的進階情境,請參考條碼讀取文檔

如何在ASP.NET中導出條碼到PDF?

在PDF文檔中嵌入直接生成的條碼,是運送標籤、倉庫標籤和合規文件的一個常見需求。 IronBarCode支持直接保存為PDF格式:

GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
    "SHIP-2024-99471",
    BarcodeWriterEncoding.Code128);
barcode.ResizeTo(500, 150);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.SaveAsPdf("shipping-label.pdf");
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
    "SHIP-2024-99471",
    BarcodeWriterEncoding.Code128);
barcode.ResizeTo(500, 150);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.SaveAsPdf("shipping-label.pdf");
$vbLabelText   $csharpLabel

對於多條碼PDF文檔 -- 例如,一頁的產品標籤 -- 分別生成每個條碼,然後使用PDF程式庫組合它們。 IronPDF集成指南解釋了如何將條碼加蓋在現有的PDF範本上,這對於在預設計的標籤佈局上添加條碼是有用的。

SaveAsPdf()方法還接受輸出尺寸,以便所呈現的PDF頁面符合標籤打印機所需的實體標籤尺寸。

如何處理條碼生成錯誤與驗證?

條碼編碼規則因格式而異。 例如,UPC-A需要正好11或12位數字,EAN-13需要正好12或13位,而Code 128的可讀出輸出在標準尺寸下有48字符的實際限制。 傳遞無效數據會引發IronBarCodeEncoderException

在控制器動作中顯式處理編碼錯誤:

public IActionResult SafeGenerate(string data, string format)
{
    try
    {
        var encoding = Enum.Parse<BarcodeWriterEncoding>(format, true);
        GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, encoding);
        return File(barcode.ToPngBinaryData(), "image/png");
    }
    catch (IronBarCodeEncoderException ex)
    {
        return BadRequest($"Encoding error: {ex.Message}");
    }
    catch (ArgumentException ex)
    {
        return BadRequest($"Unknown format: {ex.Message}");
    }
}
public IActionResult SafeGenerate(string data, string format)
{
    try
    {
        var encoding = Enum.Parse<BarcodeWriterEncoding>(format, true);
        GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, encoding);
        return File(barcode.ToPngBinaryData(), "image/png");
    }
    catch (IronBarCodeEncoderException ex)
    {
        return BadRequest($"Encoding error: {ex.Message}");
    }
    catch (ArgumentException ex)
    {
        return BadRequest($"Unknown format: {ex.Message}");
    }
}
$vbLabelText   $csharpLabel

在生產中,請在調用CreateBarcode()之前驗證輸入數據長度和字元集。 IronBarCode文檔提供了每種支持條碼類型的特定格式編碼約束。

你的下一步行動是什麼?

使用IronBarCode構建ASP.NET條碼生成器,提供了一個可靠的解決方案來在.NET Core Web應用程式中創建、設計和導出條碼圖像。 程式庫自動處理複雜的編碼標準,同時通過開發者友好的API提供廣泛的自定義選項。 無論是為行動掃描生成QR碼、工業應用的Data Matrix條碼,還是零售用的UPC碼,IronBarCode可直接與ASP.NET MVC控制器和Razor頁面整合。

探索這些資源以深入了解:

您可以在免費評估期間測試完整功. 要在生產部署和商業用途中使用,查看許可選項以選擇適合您專案需求的授權。 程式庫支持位圖和向量導出,每個版本維持在Windows、Linux、Android和iOS部署目標上的兼容性。

如有疑問,與其他.NET條碼程式庫的基準測試,或企業集成支援,請訪問IronBarCode支援入口

現在開始使用 IronBarcode。
green arrow pointer

常見問題解答

IronBarcode在ASP.NET Core中支持哪些條碼格式?

IronBarcode支持超過30種條碼格式,包括QR Code、Data Matrix、Code 128、UPC-A、EAN-13、Code 39、PDF417、Aztec、MaxiCode、ITF等。涵蓋了1D線性和2D矩陣格式。

如何從ASP.NET MVC控制器返回生成的條碼作為圖像?

使用data和編碼格式調用BarcodeWriter.CreateBarcode(),然後使用ToPngBinaryData()獲取字節數組,並從控制器操作中以File(bytes, 'image/png')返回。

IronBarcode能從上傳的圖像中讀取條碼嗎?

可以。使用BarcodeReader.Read()與IFormFile流來解碼使用者上傳圖像中的條碼。讀取器將所有檢測到的條碼作為BarcodeResult對象集合返回。

如何在Razor視圖中嵌入條碼而不保存文件?

調用barcode.ToDataUrl()以獲取Base64數據URL字串,將其分配給ViewBag,並在Razor視圖中作為img元素的src屬性進行渲染。

IronBarcode支持哪些.NET版本?

IronBarcode支持.NET 6, 7, 8, 9, 10和.NET Framework 4.6.2+。它可以在Windows、Linux、macOS、Docker、Azure、AWS、Android和iOS上運行。

如何在ASP.NET中處理無效的條碼數據?

將BarcodeWriter.CreateBarcode()置於IronBarCodeEncoderException的try-catch中。在編碼之前根據格式特定的限制檢驗輸入長度和字符集以防止異常。

IronBarcode能將條碼匯出為PDF嗎?

可以。在任何GeneratedBarcode對象上調用SaveAsPdf()以生成PDF文件。該方法接受輸出路徑和可選頁面尺寸,以匹配實體標籤尺寸。

使用IronBarcode需要條碼字體嗎?

不需要。IronBarcode是獨立的,內部處理所有編碼和渲染。不需要條碼字體、GD庫或其他系統配置。

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

鋼鐵支援團隊

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