在ASP.NET Core Web Apps中生成條碼
在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");
}
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");
}
Imports IronBarCode
Imports Microsoft.AspNetCore.Mvc
Public Function GenerateBarcode(data As String) As IActionResult
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128)
barcode.ResizeTo(400, 120)
barcode.AddBarcodeValueTextBelowBarcode()
Dim barcodeBytes As Byte() = barcode.ToPngBinaryData()
Return File(barcodeBytes, "image/png")
End Function
開始您的免費試用以遵循下面的完整教程程式碼範例。
您如何在.NET Core專案中安裝條碼庫?
將條碼生成功能新增到ASP.NET Core網路應用程式需要安裝IronBarcode NuGet套件。 打開Visual Studio並使用Package Manager Console來安裝依賴項:
Install-Package BarCode
該套件相容於.NET Core 6、7、8、10及更新版本,以及.NET Framework 4.6.2+。 該程式庫自動處理所有依賴關係,無需其他條碼字體或系統配置。 安裝後,將命名空間引用新增到控制器或服務檔案中:
using IronBarCode;
using IronBarCode;
Imports 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;
using IronBarCode;
using Microsoft.AspNetCore.Mvc;
Imports IronBarCode
Imports 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");
}
}
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");
}
}
Imports IronBarCode
Imports Microsoft.AspNetCore.Mvc
Public Class BarcodeController
Inherits Controller
Public Function GenerateBarcode(data As String) As IActionResult
' Generate barcode from input data
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128)
barcode.ResizeTo(400, 120)
barcode.AddBarcodeValueTextBelowBarcode()
' Return as image for display in browser
Dim barcodeBytes As Byte() = barcode.ToPngBinaryData()
Return File(barcodeBytes, "image/png")
End Function
End Class
輸出條碼圖像

BarcodeWriter.CreateBarcode()方法接受條碼資料作為第一個參數,編碼格式作為第二個參數。 此方法的優勢在於,能夠根據使用者輸入或資料庫值動態建立條碼。
要將條碼圖像保存到專案文件夾中,請使用SaveAsImage()方法:
barcode.SaveAsImage("wwwroot/images/generated-barcode.png");
barcode.SaveAsImage("wwwroot/images/generated-barcode.png");
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");
}
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 Function DownloadBarcode(data As String) As IActionResult
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128)
barcode.ResizeTo(400, 120)
Dim pdfBytes As Byte() = barcode.ToPdfBinaryData()
Return File(pdfBytes, "application/pdf", "barcode.pdf")
End Function
此模式對於運輸標籤生成、產品標籤工作流程以及任何需要使用者直接保存或列印條碼文件的場景非常有用。
對於網路應用程式,支持哪些條碼型別?
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");
// 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
Dim qrCode As GeneratedBarcode = QRCodeWriter.CreateQrCode( _
"https://example.com/product/12345", _
500, _
QRCodeWriter.QrErrorCorrectionLevel.Medium)
qrCode.SaveAsPng("product-qr.png")
輸出QR Code

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");
' Create Data Matrix barcode
Dim dataMatrix As GeneratedBarcode = BarcodeWriter.CreateBarcode( _
"DMX-2024-001", _
BarcodeWriterEncoding.DataMatrix)
dataMatrix.SaveAsGif("datamatrix.gif")
輸出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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
輸出

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");
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");
Dim styledBarcode As GeneratedBarcode = 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")
設計的條碼圖像

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();
}
Public Function DisplayBarcode() As IActionResult
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("INV-2024-0042", BarcodeWriterEncoding.Code128)
Dim base64Image As String = barcode.ToDataUrl()
ViewBag.BarcodeImage = base64Image
Return View()
End Function
顯示的條碼

在Razor視圖中,在 此方法消除了需要將條碼圖像保存到文件系統的需求,保持網路服務無狀態。 完整的API參考記錄了所有可用的方法和屬性。 從上傳的圖像或文件流中讀取條碼由 性能在高吞吐量ASP.NET應用程式中同樣值得考慮。 讀取器支援感興趣區域掃描,這會在分析前將圖像裁剪到特定的像素矩形。 這顯著降低了當條碼始終出現在圖像已知區域時的處理時間。 對於調整低品質圖像對比度或調整檢測靈敏度等高級場景,請參考條碼閱讀文件。 直接嵌入PDF文件中的條碼生成是運輸標籤、倉庫標籤和合規文件的常見需求。 IronBarcode支援直接保存為PDF格式: 對於多條碼PDF文件 -- 例如,一頁產品標籤 -- 分別生成每個條碼,然後使用PDF庫合併它們。 IronPDF整合指南解釋了如何在現有PDF模板上蓋章條碼,這對於將條碼新增到預設標籤佈局非常有用。 條碼編碼規則因格式而異。 例如,UPC-A要求正好11或12位數字,EAN-13要求正好12或13,而Code 128在標準尺寸下為可讀輸出的48字元實際限制。 傳遞無效資料會引發 在控制器動作中顯式處理編碼錯誤: 在生產使用中,請在呼叫 使用IronBarcode構建ASP.NET條碼生成器,為在.NET Core網路應用程式中建立、設計和匯出條碼圖像提供了可靠的解決方案。 該程式庫自動處理複雜的編碼標準,同時通過開發者友好的API提供廣泛的自訂選項。 無論是為行動掃描生成QR碼、工業應用生成Data Matrix條碼,還是為零售生成UPC程式碼,IronBarcode都能直接與ASP.NET MVC控制器和Razor頁面整合。 探索以下資源以獲取更多資訊: 您可以在試用期間測試所有功能。 對於生產部署和商業使用,查看授權選項以選擇滿足您專案需求的適當許可證。 該程式庫支援位圖和向量匯出,每個版本均保持對Windows、Linux、Android和iOS部署目標的相容性。 如有問題、需要與.NET的其他條碼庫進行基準測試或企業整合支援,請存取IronBarcode支援門戶。 IronBarcode 支持超過30種條碼格式,包括 QR Code、Data Matrix、Code 128、UPC-A、EAN-13、Code 39、PDF417、Aztec、MaxiCode、ITF 等。涵蓋了 1D 線性和 2D 矩陣格式。 調用 BarcodeWriter.CreateBarcode() 並使用資料和編碼格式,然後使用 ToPngBinaryData() 獲得位元組陣列,並從控制器操作中返回 File(bytes, 'image/png')。 可以。使用 BarcodeReader.Read() 和 IFormFile 流從使用者上傳的圖像中解碼條碼。讀取器返回所有偵測到的條碼作為 BarcodeResult 物件的集合。 調用 barcode.ToDataUrl() 獲得 Base64 資料 URL 字串,將其分配給 ViewBag,並在 Razor 視圖中將其作為 img 元素的 src 屬性渲染。 IronBarcode 支持 .NET 6、7、8、9、10 和 .NET Framework 4.6.2+。它在 Windows、Linux、macOS、Docker、Azure、AWS、Android 和 iOS 上運行。 將 BarcodeWriter.CreateBarcode() 包裹在 IronBarCodeEncoderException 的 try-catch中。編碼前驗證輸入長度和字元集是否滿足格式特定的限制以防止異常發生。 可以。對任何 GeneratedBarcode 物件調用 SaveAsPdf() 以生成 PDF 文件。該方法接受輸出路徑和可選的頁面尺寸以匹配實體標籤大小。 不需要。IronBarcode 是一個獨立的工具,內部處理所有的編碼和渲染。不需要條碼字體、GD 函式庫或額外的系統配置。<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>您如何在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.");
}
}Imports IronBarCode
Imports Microsoft.AspNetCore.Http
Imports Microsoft.AspNetCore.Mvc
Public Class BarcodeScanController
Inherits Controller
Public Function ScanBarcode(uploadedImage As IFormFile) As IActionResult
Using stream = uploadedImage.OpenReadStream()
Dim results = BarcodeReader.Read(stream)
If results.Count > 0 Then
Dim decodedValue As String = results(0).Value
Return Ok(New With {.barcode = decodedValue})
End If
Return BadRequest("No barcode detected in image.")
End Using
End Function
End ClassSystem.Drawing.Bitmap物件。 它自動檢測條碼格式並返回BarcodeResult物件集,每個都包含解碼的值、格式型別和圖像中的位置。 當多個條碼出現在單個圖像中時 -- 例如,在倉庫貨架照片中 -- 讀取器返回集合中的所有檢測值,而不僅僅是第一個。您如何在ASP.NET中將條碼匯出為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");Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode( _
"SHIP-2024-99471", _
BarcodeWriterEncoding.Code128)
barcode.ResizeTo(500, 150)
barcode.AddAnnotationTextAboveBarcode("Shipping Label")
barcode.AddBarcodeValueTextBelowBarcode()
barcode.SaveAsPdf("shipping-label.pdf")SaveAsPdf()方法也接受輸出尺寸,以便生成的PDF頁面與標籤列印機所需的物理標籤尺寸相符。您如何處理條碼生成錯誤和驗證?
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}");
}
}Imports System
Public Function SafeGenerate(data As String, format As String) As IActionResult
Try
Dim encoding = [Enum].Parse(Of BarcodeWriterEncoding)(format, True)
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(data, encoding)
Return File(barcode.ToPngBinaryData(), "image/png")
Catch ex As IronBarCodeEncoderException
Return BadRequest($"Encoding error: {ex.Message}")
Catch ex As ArgumentException
Return BadRequest($"Unknown format: {ex.Message}")
End Try
End FunctionCreateBarcode()之前驗證輸入資料長度和字元集。 IronBarcode文件為每種支援的條碼型別提供格式特定的編碼限制。您的下一步是什麼?
常見問題
IronBarcode 在 ASP.NET Core 中支持哪些條碼格式?
如何從 ASP.NET MVC 控制器中返回生成的條碼作為圖像?
IronBarcode 能從上傳的圖像中讀取條碼嗎?
如何在不保存文件的情況下在 Razor 視圖中嵌入條碼?
IronBarcode 支持哪些 .NET 版本?
如何在 ASP.NET 中處理無效的條碼資料?
IronBarcode 可以匯出條碼到 PDF 嗎?
using IronBarcode 需要條碼字體嗎?




