IRONSOFTWAREHOME
使用IRONBARCODE

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

Curtis Chau
Curtis Chau
Updated: 2026年2月27日

在ASP.NET網路應用程式中整合條碼生成,為庫存管理、產品追蹤和文件自動化開啟了強大的功能。 本教程演示如何在.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");
}

開始您的免費試用以遵循下面的完整教程程式碼範例。

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

將條碼生成功能新增到ASP.NET Core網路應用程式需要安裝IronBarcode NuGet套件。 打開Visual Studio並使用Package Manager Console來安裝依賴項:

PM > Install-Package BarCode

該套件相容於.NET Core 6、7、8、10及更新版本,以及.NET Framework 4.6.2+。 該程式庫自動處理所有依賴關係,無需其他條碼字體或系統配置。 安裝後,將命名空間引用新增到控制器或服務檔案中:

using IronBarCode;

支援哪些.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庫、本地編解碼器或條碼字體安裝。 該程式庫完全自包含,並內部解決所有編碼邏輯。

您如何向控制器新增命名空間?

安裝NuGet套件後,在需要生成條碼的任何控制器、服務或Razor頁面模型的頂部參考IronBarCode命名空間:

using IronBarCode;
using Microsoft.AspNetCore.Mvc;

這單一的BarcodeReader,以及所有支援條碼生成和讀取的型別。

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

在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");
    }
}

輸出條碼圖像

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

BarcodeWriter.CreateBarcode()方法接受條碼資料作為第一個參數,編碼格式作為第二個參數。 此方法的優勢在於,能夠根據使用者輸入或資料庫值動態建立條碼。

要將條碼圖像保存到專案文件夾中,請使用SaveAsImage()方法:

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

該程式庫支援多種輸出格式,包括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");
}

此模式對於運輸標籤生成、產品標籤工作流程以及任何需要使用者直接保存或列印條碼文件的場景非常有用。

對於網路應用程式,支持哪些條碼型別?

IronBarcode支援超過30種格式。 以下是如何建立最常用型別的詳細資料:

QR 碼生成

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

輸出QR Code

ASP .NET條碼生成:為您的網應用程式構建條碼生成器:圖像 2 - 與ASP .NET條碼生成相關的圖像 2(共6幅)

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");

輸出Data Matrix

ASP .NET條碼生成:為您的網應用程式構建條碼生成器:圖像 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");

輸出

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

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

您如何自訂和設計條碼圖像?

為網應用程式設計條碼需要調整顏色、字體、邊距和註解。 流利的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");

設計的條碼圖像

ASP .NET條碼生成:為您的網應用程式構建條碼生成器:圖像 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();
}

顯示的條碼

ASP .NET條碼生成:為您的網應用程式構建條碼生成器:圖像 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>
HTML

此方法消除了需要將條碼圖像保存到文件系統的需求,保持網路服務無狀態。 完整的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.");
    }
}

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");

對於多條碼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}");
    }
}

在生產使用中,請在呼叫CreateBarcode()之前驗證輸入資料長度和字元集。 IronBarcode文件為每種支援的條碼型別提供格式特定的編碼限制。

您的下一步是什麼?

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

探索以下資源以獲取更多資訊:

您可以在試用期間測試所有功能。 對於生產部署和商業使用,查看授權選項以選擇滿足您專案需求的適當許可證。 該程式庫支援位圖和向量匯出,每個版本均保持對Windows、Linux、Android和iOS部署目標的相容性。

如有問題、需要與.NET的其他條碼庫進行基準測試或企業整合支援,請存取IronBarcode支援門戶

第一步:
arrow pointer
Curtis Chau
技術作家

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

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預訂您的免費即時演示
Booking Badge

全球數百萬工程師信賴

Iron Software的客戶標誌
獲取您的無義務諮詢
完成下方表單或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
全球數百萬工程師信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立