IRONSOFTWAREHOME
USING IRONBARCODE

在ASP.NET Core Web 应用程序中生成条形码

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

将条形码生成集成到 ASP.NET 网络应用程序中,可为库存管理、产品跟踪和文档自动化提供强大的功能。 本教程演示如何在.NET Core项目中使用IronBarcode生成条形码——一个支持30多种格式的条形码库,包括QR Code、Data Matrix、Code 128和UPC A。

以下简单示例展示了如何创建 Code 128 条形码,并从 MVC 控制器操作中将其作为 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");
}

立即开始免费试用,即可跟随以下完整的教程代码示例进行学习。

如何在.NET Core项目中安装条形码库?

将条形码生成功能添加到ASP.NET Core网络应用程序需要安装IronBarcode NuGet包。 打开 Visual Studio,使用软件包管理器控制台安装依赖项:

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

输出条形码图像

ASP .NET条形码生成: 为您的Web应用程序构建条形码生成器: 图像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");
}

这种模式适用于生成货运标签、产品标签工作流程,以及最终用户需要直接保存或打印条形码文档的任何场景。

Web 应用程序支持哪些 BarCode 类型?

IronBarcode支持30多种格式。 以下是如何创建最常用类型的详细信息:

二维码生成

// 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 代码

ASP .NET条形码生成: 为您的Web应用程序构建条形码生成器: 图像2 - 与ASP .NET条形码生成相关的6个图像中的第2个

QR 代码生成支持纠错级别,该级别可确定代码在可读状态下可被损坏的程度。 对于预期会有物理磨损的打印二维码应用,请使用 "中 "或 "高"。 了解更多关于二维码定制选项的信息

数据矩阵和其他 2D 格式

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

输出数据矩阵

ASP .NET条形码生成: 为您的Web应用程序构建条形码生成器: 图像3 - 生成的数据矩阵

数据矩阵 BarCode 适用于需要紧凑、高密度编码的场景。 该库还可以生成PDF417、Aztec 和 MaxiCode格式。 与线性格式相比,这些二维条形码类型存储的数据要多得多,同时还能保持可靠的扫描精度。

线性条形码(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条形码生成: 为您的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");

有风格的 BarCode 图像

ASP .NET条形码生成: 为您的Web应用程序构建条形码生成器: 图像5 - 输出样式条形码

SetMargins()方法在条形码周围添加空白,以改善扫描仪的可读性。 您可以调整注释文本的字体设置,更改字体系列和字体大小,并广泛自定义条形码样式。 该库使用系统字体渲染文本,无需外部条形码字体。

如何在Razor视图中直接嵌入条形码?

对于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条形码生成: 为您的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>
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.");
    }
}

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 提供广泛的自定义功能。 无论是为移动扫描生成二维码,用于工业应用的Data Matrix条形码,还是用于零售的UPC码,IronBarcode都可以直接与ASP.NET MVC控制器和Razor页面集成。

探索以下资源,了解更多信息:

在免费试用期内,您可以体验所有功能。 对于生产部署和商业用途,请查看许可选项,选择适合您项目需求的许可证。 该库支持位图和矢量导出,每个版本都保持与 Windows、Linux、Android 和 iOS 部署目标的兼容性。

如有疑问,或需要与.NET的其他条形码库进行基准测试,或需要企业集成支持,请访问IronBarcode支持门户

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

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

相关文章

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 天试用密钥
无需信用卡或创建账户