USING IRONBARCODE C# 从字符串生成 BarCode:使用 IronBarcode 的完整教程 Jordi Bardia 已更新:2026年3月1日 下载 IronBarcode NuGet 下载 DLL 下载 免费试用 LLM副本 LLM副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 将字符串数据编码为条形码图像是库存系统、零售应用程序和文档管理的基本要求。 本教程演示了如何使用IronBarcode从C#中的字符串值生成条形码——涵盖从安装到以多种格式保存条形码图像、为生产使用进行样式设置以及处理来自数据库数据的大批量数据的一切。 IronBarcode是由Iron Software开发的.NET库,它简化了为Windows应用程序、Web服务和云托管API构建的.NET开发人员的条形码生成和读取。开始您的免费试用以配合以下代码示例。 如何在.NET项目中安装IronBarcode? 使用.NET CLI或Visual Studio中的NuGet包管理器安装IronBarcode仅需几秒钟。 选项1——.NET CLI(推荐用于.NET 10): dotnet add package Barcode dotnet add package Barcode SHELL 选项2——Visual Studio中的NuGet包管理器控制台: Install-Package BarCode 或者,在NuGet包管理器GUI中搜索"IronBarCode"并安装官方包。 该库目标.NET Framework 4.6.2+和.NET 5到.NET 10,确保与现代.NET工作负载兼容。 安装后,在每个生成或读取条形码的文件顶部添加一个using指令: using IronBarCode; using IronBarCode; $vbLabelText $csharpLabel 该指令公开了BarcodeEncoding以及本指南中涵盖的其他公共类型。 如何在C#中从字符串生成一个简单的条形码? BarcodeWriter.CreateBarcode方法是条形码生成的入口。 传入您想要编码的字符串以及一个GeneratedBarcode对象,准备好进行保存或进一步操作。 using IronBarCode; // Generate a Code 128 barcode from a product SKU string string productCode = "SKU-78432-A"; var barcode = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.Code128); barcode.SaveAsPng("product_barcode.png"); using IronBarCode; // Generate a Code 128 barcode from a product SKU string string productCode = "SKU-78432-A"; var barcode = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.Code128); barcode.SaveAsPng("product_barcode.png"); $vbLabelText $csharpLabel Barcode 生成输出 这将从产品字符串创建一个Code128条形码图像,并将其保存为PNG文件。CreateBarcode方法处理所有编码复杂性,因此可以用最少的代码生成一个条形码图像。 IronBarcode支持保存为PNG、JPEG、GIF、TIFF、BMP和SVG格式。 该方法还接收可选的宽度和高度参数以控制输出尺寸,帮助确保在目标环境中获得适当的扫描质量: using IronBarCode; // Specify width and height in pixels for the barcode image string productCode = "SKU-78432-A"; var barcode = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.Code128, 400, 120); barcode.SaveAsPng("product_barcode_sized.png"); using IronBarCode; // Specify width and height in pixels for the barcode image string productCode = "SKU-78432-A"; var barcode = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.Code128, 400, 120); barcode.SaveAsPng("product_barcode_sized.png"); $vbLabelText $csharpLabel 设置明确的尺寸在为热敏标签打印机生成标签时特别有用,因为输出尺寸必须与标签纸张完全匹配。 IronBarcode 支持哪些条码格式? IronBarcode支持20多种条形码类型以适应不同的使用场景。 选择正确的格式可确保适当的扫描和足够的数据容量以满足应用需求。 using IronBarCode; string url = "https://ironsoftware.com/csharp/barcode/"; string numericId = "0123456789012"; // QR Code -- best for URLs, text data, and mobile scanning BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode) .SaveAsPng("qrcode.png"); // UPC-A -- required for retail point-of-sale systems (12 digits) BarcodeWriter.CreateBarcode(numericId, BarcodeEncoding.UPCA) .SaveAsPng("upc_barcode.png"); // PDF417 -- suited for documents that need higher data capacity BarcodeWriter.CreateBarcode("Extended product details here", BarcodeEncoding.PDF417) .SaveAsJpeg("pdf417_barcode.jpeg"); using IronBarCode; string url = "https://ironsoftware.com/csharp/barcode/"; string numericId = "0123456789012"; // QR Code -- best for URLs, text data, and mobile scanning BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode) .SaveAsPng("qrcode.png"); // UPC-A -- required for retail point-of-sale systems (12 digits) BarcodeWriter.CreateBarcode(numericId, BarcodeEncoding.UPCA) .SaveAsPng("upc_barcode.png"); // PDF417 -- suited for documents that need higher data capacity BarcodeWriter.CreateBarcode("Extended product details here", BarcodeEncoding.PDF417) .SaveAsJpeg("pdf417_barcode.jpeg"); $vbLabelText $csharpLabel Barcode 图像输出 下表总结了何时使用每种主要格式: IronBarcode支持的按使用场景分的条形码格式 翻译格式最适合字符集 `QRCode`URLs、文本、移动扫描ASCII + Unicode `Code128`字母数字产品代码、运输标签完整ASCII `UPCA` / `EAN13`零售销售点系统仅限数字 `PDF417`身份证卡、登机牌、文件二进制数据 `DataMatrix`小标签、电子产品ASCII + 二进制 `Aztec`交通票、移动登机ASCII + Unicode 有关支持的完整编码列表,请访问IronBarcode条形码类型参考。 如何在C#中自定义和样式化条形码图像? 除了基本的条形码生成,IronBarcode还提供了一种流式样式API,用于调整颜色、添加注释以及在没有任何外部图像处理库的情况下调整条形码图像大小。 using IronBarCode; using IronSoftware.Drawing; string orderNumber = "ORD-2024-00542"; var styledBarcode = BarcodeWriter.CreateBarcode(orderNumber, BarcodeEncoding.Code128); // Adjust colors to match brand identity styledBarcode.ChangeBarCodeColor(Color.DarkBlue); styledBarcode.ChangeBackgroundColor(Color.White); // Add readable text annotations above and below the bars styledBarcode.AddAnnotationTextAboveBarcode("Order Number", new Font("Arial", 12), Color.Black, 5); styledBarcode.AddBarcodeValueTextBelowBarcode(new Font("Arial", 10), Color.Gray, 5); // Resize to fit a thermal label at 400 x 150 pixels styledBarcode.ResizeTo(400, 150); styledBarcode.SaveAsPng("styled_order_barcode.png"); using IronBarCode; using IronSoftware.Drawing; string orderNumber = "ORD-2024-00542"; var styledBarcode = BarcodeWriter.CreateBarcode(orderNumber, BarcodeEncoding.Code128); // Adjust colors to match brand identity styledBarcode.ChangeBarCodeColor(Color.DarkBlue); styledBarcode.ChangeBackgroundColor(Color.White); // Add readable text annotations above and below the bars styledBarcode.AddAnnotationTextAboveBarcode("Order Number", new Font("Arial", 12), Color.Black, 5); styledBarcode.AddBarcodeValueTextBelowBarcode(new Font("Arial", 10), Color.Gray, 5); // Resize to fit a thermal label at 400 x 150 pixels styledBarcode.ResizeTo(400, 150); styledBarcode.SaveAsPng("styled_order_barcode.png"); $vbLabelText $csharpLabel 风格化条形码输出 有哪些样式属性可用? GeneratedBarcode类公开了几类样式方法: 颜色控制——IronSoftware.Drawing 文本注释——使用自定义字体、大小和颜色在条形码上方或下方添加文本 边距控制——设置条形码周围的填充以改善在杂乱标签上的扫描器性能 旋转——为需要纵向标签布局的情况下,将条形码图像侧向或对角旋转 调整大小——在不变形编码数据的情况下修复像素的宽度和高度 样式方法自然地串联在一起,保持代码的可读性,同时生成符合应用视觉设计的条形码图像。 有关更深入的演练,请参阅条形码样式指南。 如何从数据库数据生成多个条形码? 现实世界的应用通常需要为物品集合生成条形码——产品目录、库存补充运行或订单派送工作流。 IronBarcode在不进行任何额外配置的情况下处理批量处理。 using IronBarCode; // Data sourced from a database query result List<string> productIds = [ "PROD-001-X", "PROD-002-Y", "PROD-003-Z", "PROD-004-W" ]; // Generate one barcode image per product ID foreach (string productId in productIds) { var barcode = BarcodeWriter.CreateBarcode(productId, BarcodeEncoding.Code128, 300, 100); barcode.SaveAsPng($"barcodes/{productId}.png"); } using IronBarCode; // Data sourced from a database query result List<string> productIds = [ "PROD-001-X", "PROD-002-Y", "PROD-003-Z", "PROD-004-W" ]; // Generate one barcode image per product ID foreach (string productId in productIds) { var barcode = BarcodeWriter.CreateBarcode(productId, BarcodeEncoding.Code128, 300, 100); barcode.SaveAsPng($"barcodes/{productId}.png"); } $vbLabelText $csharpLabel 输出条形码 扩展到高容量 上述循环模式扩展到数千条记录无需修改。 对于大批量条形码生成,IronBarcode支持异步和多线程操作以最大限度地利用多核服务器的吞吐量。 生成的条形码图像可以嵌入到PDF报告中、打印在标签上或存储在文档管理系统中。 每个图像在条形码扫描器解码回文本之前,将原始字符串编码为二进制模式。 对于每次运行生成数千个条形码的生产批处理作业,请考虑在循环开始之前预热IronBarcode引擎。 对CreateBarcode的首次调用会初始化内部编码缓存; 同一进程内的后续调用因此会更快完成。 将整个批处理封装在一个计时方法中也使记录汇总统计变得简单——总生成条形码数量、所有编码失败和经过时间——然后批处理终止。 该模式与Hangfire之类的背景作业框架以及 .NET 内置的 IHostedService 集成顺利进行,用于定时生成任务。 如何以不同的文件格式保存和导出条形码? GeneratedBarcode 提供了一系列保存方法,涵盖了商业应用中使用的最常见图像格式: using IronBarCode; string value = "EXPORT-TEST-001"; var barcode = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128, 400, 120); // Save to disk in multiple formats barcode.SaveAsPng("barcode.png"); // Lossless -- best for print barcode.SaveAsJpeg("barcode.jpg"); // Compressed -- smaller file size barcode.SaveAsGif("barcode.gif"); // Compatible with legacy systems barcode.SaveAsTiff("barcode.tiff"); // Multi-page archival format barcode.SaveAsBmp("barcode.bmp"); // Uncompressed bitmap // Export as a byte array for in-memory operations (API responses, database storage) byte[] pngBytes = barcode.ToStream(Image翻译格式.Png).ToArray(); using IronBarCode; string value = "EXPORT-TEST-001"; var barcode = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128, 400, 120); // Save to disk in multiple formats barcode.SaveAsPng("barcode.png"); // Lossless -- best for print barcode.SaveAsJpeg("barcode.jpg"); // Compressed -- smaller file size barcode.SaveAsGif("barcode.gif"); // Compatible with legacy systems barcode.SaveAsTiff("barcode.tiff"); // Multi-page archival format barcode.SaveAsBmp("barcode.bmp"); // Uncompressed bitmap // Export as a byte array for in-memory operations (API responses, database storage) byte[] pngBytes = barcode.ToStream(Image翻译格式.Png).ToArray(); $vbLabelText $csharpLabel 选择正确的格式取决于下游消费者。 PNG非常适合用于待打印标签和文件。 JPEG适用于存储大小受到限制的应用。 对于直接嵌入PDF文件中的条形码,IronBarcode与IronPDF集成,可编程地标记或插入条形码图像。 ToStream 重载在 Web API 和不希望写入磁盘的云函数中特别有价值。 字节数组可以存储在数据库BLOB列中、上传到云存储或直接流到HTTP响应中,而不需要文件系统上的任何中间文件。 如何在编码之前验证字符串数据? 并非每个字符串都对每种条形码格式有效。 UPC-A要求恰好12个数字数字,EAN-13要求13个数字,并且某些1D格式拒绝ASCII子集以外的字符。 将无效数据传给IronBarCodeEncodingException。 在生产环境中,将调用封装在try/catch块中,并预先验证输入以防止未处理的异常。 using IronBarCode; bool TryCreateBarcode(string value, BarcodeEncoding encoding, string outputPath) { if (string.IsNullOrWhiteSpace(value)) { Console.WriteLine("Value must not be empty."); return false; } try { var barcode = BarcodeWriter.CreateBarcode(value, encoding); barcode.SaveAsPng(outputPath); return true; } catch (IronBarCodeEncodingException ex) { Console.WriteLine($"Encoding failed: {ex.Message}"); return false; } } // Usage TryCreateBarcode("SKU-001", BarcodeEncoding.Code128, "output.png"); // succeeds TryCreateBarcode("NOT-NUMERIC", BarcodeEncoding.UPCA, "output.png"); // encoding exception using IronBarCode; bool TryCreateBarcode(string value, BarcodeEncoding encoding, string outputPath) { if (string.IsNullOrWhiteSpace(value)) { Console.WriteLine("Value must not be empty."); return false; } try { var barcode = BarcodeWriter.CreateBarcode(value, encoding); barcode.SaveAsPng(outputPath); return true; } catch (IronBarCodeEncodingException ex) { Console.WriteLine($"Encoding failed: {ex.Message}"); return false; } } // Usage TryCreateBarcode("SKU-001", BarcodeEncoding.Code128, "output.png"); // succeeds TryCreateBarcode("NOT-NUMERIC", BarcodeEncoding.UPCA, "output.png"); // encoding exception $vbLabelText $csharpLabel 为输入数据选择正确的格式 当条形码格式在运行时可配置时,映射内容类型到合适编码的助手可以避免静默失败: 当字符串包含URLs、电子邮件地址或多字节Unicode字符时,请使用BarcodeEncoding.QRCode。 对于通用字母数字字符串,长度最多大约80个字符,请使用BarcodeEncoding.Code128。 仅在数据为纯数字且长度固定时使用BarcodeEncoding.UPCA。 校验位由 IronBarcode 自动计算。 对于必须放在物理较小标签上的非常短的字母数字字符串,请使用BarcodeEncoding.DataMatrix。 在调用CreateBarcode前添加格式验证,保持错误信息面向用户而不是在应用日志中的晦涩堆栈踪迹。 如何从字符串值重新读取条形码? 在许多系统中,生成条形码仅仅是工作流程的一半。 条形码读取API使用BarcodeReader.Read将图像解码回原始字符串。 using IronBarCode; // Read all barcodes from an image file var results = BarcodeReader.Read("product_barcode.png"); foreach (var result in results) { // Output the decoded string value Console.WriteLine($"Decoded value: {result.Value}"); Console.WriteLine($"翻译格式 detected: {result.BarcodeType}"); } using IronBarCode; // Read all barcodes from an image file var results = BarcodeReader.Read("product_barcode.png"); foreach (var result in results) { // Output the decoded string value Console.WriteLine($"Decoded value: {result.Value}"); Console.WriteLine($"翻译格式 detected: {result.BarcodeType}"); } $vbLabelText $csharpLabel 这使得构建回程条形码工作流程变得简单——从产品记录生成条形码,将其保存到磁盘或标签打印机队列,然后稍后扫描实际标签并将值解码回以查找记录。 对于从PDF文件或< live camera feeds 读取条形码,IronBarcode提供了相同简单API的专用方法。 如何在ASP.NET Core Web API中使用IronBarcode? IronBarcode在ASP.NET Core控制器和最小API处理程序中工作。 最常见的模式是返回条形码图像作为文件结果或base64编码的数据URI,以在浏览器中呈现。 using IronBarCode; using Microsoft.AspNetCore.Mvc; var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); // Minimal API endpoint -- returns a barcode PNG for the given value app.MapGet("/barcode/{value}", (string value) => { var barcode = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128, 400, 120); byte[] imageBytes = barcode.ToStream(Image翻译格式.Png).ToArray(); return Results.File(imageBytes, "image/png"); }); app.Run(); using IronBarCode; using Microsoft.AspNetCore.Mvc; var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); // Minimal API endpoint -- returns a barcode PNG for the given value app.MapGet("/barcode/{value}", (string value) => { var barcode = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128, 400, 120); byte[] imageBytes = barcode.ToStream(Image翻译格式.Png).ToArray(); return Results.File(imageBytes, "image/png"); }); app.Run(); $vbLabelText $csharpLabel 该端点为URL路径中传递的任何值按需生成条形码。 对于生产部署,请添加缓存,以便对相同条形码值的重复请求不会重新生成图像。 有关更详细的演练,包括依赖注入和响应缓存,请参阅完整的ASP.NET条形码生成教程。 您的下一步是什么? 使用IronBarcode从C#中的字符串数据生成条形码非常简单。 流利API处理条形码编码的复杂性,同时为自定义和批处理提供灵活性。 无论目标是简单的Code 128条形码用于库存还是QR代码用于移动应用,IronBarcode都为.NET应用程序提供可靠的条形码功能。 欲了解更多: 下载IronBarcode并在本地运行本指南中的代码示例 购买许可证进行生产部署——许可证开始免费试用期 浏览文档查阅API参考、高级配置和特定平台注意事项 探索代码示例涵盖QR码生成、条形码扫描、PDF集成等 ASP.NET条形码集成——在MVC视图和Razor页面中渲染条形码的完整指南 条形码扫描器集成——从图像、PDF和USB扫描仪中读取条形码在C#中 立即开始使用 IronBarcode。 免费开始 常见问题解答 如何在 C# 中安装IronBarcode以生成条形码? 从.NET CLI 运行“dotnet add package Barcode”,或者在 Visual Studio 中打开NuGet包管理器,搜索“IronBarcode”,然后安装官方包。 使用IronBarcode可以根据字符串生成哪些条形码格式? IronBarcode支持 20 多种格式,包括 QR 码、Code 128、UPC-A、EAN-13、PDF417、Data Matrix 和 Aztec。格式通过 BarcodeEncoding 枚举指定。 使用IronBarcode生成的条形码外观可以自定义吗? 是的。IronBarcode 提供了更改条形码颜色、背景颜色、在条形码上方或下方添加文本注释、设置边距、调整大小和旋转输出图像的方法。 IronBarcode是否支持批量条码生成? 是的。遍历列表或数据库结果集,并对每个值调用 `BarcodeWriter.CreateBarcode`。对于非常大的数据量, IronBarcode还支持异步和多线程操作。 IronBarcode可以将条形码保存为哪些图像格式? IronBarcode可以将条形码保存为 PNG、JPEG、GIF、TIFF、BMP 和 SVG 格式。ToStream 方法返回一个字节数组,用于内存存储,无需写入磁盘。 如何使用IronBarcode将字符串编码成条形码? 调用 `BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128)`,其中 `value` 是字符串,`BarcodeEncoding` 指定格式。然后对返回的 `GeneratedBarcode` 对象调用 `SaveAsPng` 或其他保存方法。 IronBarcode支持哪些.NET版本? IronBarcode支持.NET Framework 4.6.2 及更高版本,以及.NET 5 至.NET 10,涵盖传统和现代.NET工作负载。 IronBarcode可以在ASP.NET Core Web 应用程序中使用吗? 是的。IronBarcode 可以在控制器和极简 API 处理程序中运行。常见的模式是调用 CreateBarcode,使用 ToStream 将IronBarcode转换为字节数组,然后从端点以文件形式返回。 如何在 C# 中将条形码还原为其原始字符串? 使用 BarcodeReader.Read(filePath) 方法解码图像。该方法返回一个 BarcodeResult 对象集合,每个对象包含解码后的 Value 字符串和检测到的 BarcodeType。 IronBarcode有免费试用版吗? 是的。IronBarcode 提供免费试用许可证,允许用户在购买付费许可证进行生产部署之前,全面评估所有功能。 Jordi Bardia 立即与工程团队聊天 软件工程师 Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。 相关文章 已发布2026年3月8日 为.NET应用程序创建条码专业SDK 一个全面的.NET条码SDK,用于QR码、GS1、数据矩阵等。支持.NET 6-10、Core和Framework。 阅读更多 已发布2026年3月8日 构建条码SDK C#: 使用一个库生成、读取和扫描条码 使用IronBarcode在C#中构建条码SDK功能。生成条码图像,从文件中扫描多个条码,并使用一个.NET库读取QR码。包括示例代码。 阅读更多 已更新2026年3月1日 .NET条形码字体:如何在不依赖字体的情况下生成和打印条形码 使用IronBarcode ,以现代化的方式在.NET中处理条形码字体。生成 Code 39 和 Code 128 条形码图像——无需依赖任何字体。提供免费试用版。 阅读更多 如何使用IronBarcode在 C# 中生成条形码在ASP.NET Core Web 应用程序中...
已发布2026年3月8日 构建条码SDK C#: 使用一个库生成、读取和扫描条码 使用IronBarcode在C#中构建条码SDK功能。生成条码图像,从文件中扫描多个条码,并使用一个.NET库读取QR码。包括示例代码。 阅读更多
已更新2026年3月1日 .NET条形码字体:如何在不依赖字体的情况下生成和打印条形码 使用IronBarcode ,以现代化的方式在.NET中处理条形码字体。生成 Code 39 和 Code 128 条形码图像——无需依赖任何字体。提供免费试用版。 阅读更多