在 .NET 应用程序中,使用 Aspose.BarCode 图书馆创建 39 代码和 39 的完整 ASCII 条码. 此指南提供步骤指示、 C# 编码样本和个性化提示.
引入
本文解释了如何创建代码39和代碼39完整的ASCII条形码用于资产管理、存储跟踪和使用 Aspose.BarCode for .NET 的其他应用程序.
什么是代码39和代号39完整的ASCII条码?
代码39是一个广泛使用的1D条码,支持顶级字母、数字和几个符号 - 理想的资产标签、存储系统、图书馆管理和身份证.
快速启动(最小例子)
下面的最小例子表明如何在C#中创建一个基本代码39条码#:
using Aspose.BarCode.Generation;
var generator = new BarcodeGenerator(EncodeTypes.Code39, "ABC1234");
generator.Save("asset-code39.png", BarCodeImageFormat.Png);
原則
- Visual Studio 2019 或以后
- .NET 6.0+ 或 .NET Framework 4.6.2+
- Aspose.BarCode 为 .NET (NuGet)
- 基本的C#知识
PM> Install-Package Aspose.BarCode
步骤实施
第39章 例子:
using Aspose.BarCode.Generation;
BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.Code39, "ASSET2025");
gen.Save("asset-code39.png", BarCodeImageFormat.Png);
代码 39 完整 ASCII (扩展) 示例:
BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.Code39Extended, "Asset#1234_ABC");
gen.Save("asset-code39ext.png", BarCodeImageFormat.Png);
定制条形码的出现
- 查看数字:
csgen.Parameters.Barcode.Code39.EnableChecksum = true; - 酒吧高度/宽度:
csgen.Parameters.Barcode.BarHeight.Pixels = 80; gen.Parameters.Barcode.XDimension.Pixels = 2; - 色彩/背景:
csgen.Parameters.Barcode.BarColor = Color.DarkGreen; gen.Parameters.Barcode.BackColor = Color.White; - 主条目:
csgen.Parameters.CaptionBelow.Visible = true; - 全 ASCII 模式:
EncodeTypes.Code39Extended
支持的输出格式
- PNG,JPEG,BMP —印刷和网页
- TIFF — 高级/档案
- SVG,EMF — 可扩展图形
麻烦解决与常见问题
行李箱不扫描?- 确保只使用有效的字符(A-Z, 0-9, - $ % . / + 基本代码 39 的空间).
对于特殊字符,请使用 Code39Extended.
查看错误吗?- 启用或禁用支票,以匹配您的扫描仪配置.
小标签不适合吗?- 调整字符串高度和XD尺寸;使用代码39以上的Code128以获得较少的密码.
FAQ
**Q:代码39和完整ASCII39之间的区别是什么?**答:标准代码 39 只支持一个有限的字符集. 完整 ASCII 模式(扩展) 允许通过将其编码为两个符号序列,所有 ASCII 的字符. **Q:检查数字是强制性的吗?**答:在代码39中是可选的,只有当您的工作流或扫描仪需要时才能启用.
使用案例和应用程序
- 资产和设备标签
- 图书馆与学校管理
- Inventory / 存储室跟踪
- 工业和ID标志
最佳实践:快速参考表
| 提示 | 做 | 不要 |
|---|---|---|
| 卡车 | 使用 A-Z, 0-9, -.$%./+ (基本) | 使用基本模式下载 |
| 全 ASCII | 使用代码39扩展到符号 | 预期符号在基本模式 |
| 输出格式 | SVG/PNG 为 CRISP 输出 | 印刷低 JPG |
| 查看数字 | 只有在需要时才能 | 可随机 |
结论
代码39是资产、存储和图书馆条码的背景。Aspose.BarCode for .NET 为每个场景提供灵活的选项 Aspose.BarCode API 参考 更先进的条形码功能.
高级特性:动态条码生成与批量处理
在实际项目中,往往需要一次性生成上百甚至上千个条码。利用 C# 的循环结构和 Aspose.BarCode 的批量保存接口,可以高效完成此类任务。
使用循环生成多条码
using Aspose.BarCode.Generation;
for (int i = 1; i <= 500; i++)
{
string code = $"ITEM{i:D5}"; // 例如 ITEM00001
var generator = new BarcodeGenerator(EncodeTypes.Code39Extended, code);
generator.Parameters.Barcode.XDimension.Pixels = 2;
generator.Save($"./output/{code}.png", BarCodeImageFormat.Png);
}
上述代码在指定文件夹下生成 500 张 PNG 条码图片,文件名即为对应的条码内容,便于后续导入 ERP 系统。
将条码嵌入 PDF 报告
在生产报表或标签打印时,往往需要把条码直接嵌入 PDF。Aspose.BarCode 与 Aspose.PDF 可以无缝协作。
using Aspose.BarCode.Generation;
using Aspose.Pdf;
var pdf = new Document();
var page = pdf.Pages.Add();
var generator = new BarcodeGenerator(EncodeTypes.Code39Extended, "REPORT2023");
using (var ms = new MemoryStream())
{
generator.Save(ms, BarCodeImageFormat.Png);
var image = new Image { ImageStream = ms };
image.Width = 150; image.Height = 50;
page.Paragraphs.Add(image);
}
pdf.Save("ReportWithBarcode.pdf");
这样即可在 PDF 中自动生成并显示条码,适用于发票、出库单等业务场景。
性能优化与部署注意事项
多线程生成
如果一次性生成的条码数量极大(如上万),单线程会成为瓶颈。可以使用 Parallel.ForEach 并配合 ThreadLocal<BarcodeGenerator> 来避免对象创建的开销。
using System.Threading.Tasks;
var codes = Enumerable.Range(1, 10000).Select(i => $"BATCH{i:D6}");
Parallel.ForEach(codes, new ParallelOptions { MaxDegreeOfParallelism = 8 }, code =>
{
var gen = new BarcodeGenerator(EncodeTypes.Code39Extended, code);
gen.Save($"./batch/{code}.png", BarCodeImageFormat.Png);
});
通过限制并行度,可在保持 CPU 负载合理的前提下显著提升生成速度。
在 ASP.NET Core 中使用
将条码生成封装为服务,注入到控制器中,可实现按需返回条码图片的 API。
public class BarcodeService
{
public byte[] Generate(string value)
{
var generator = new BarcodeGenerator(EncodeTypes.Code39Extended, value);
using var ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Png);
return ms.ToArray();
}
}
// 在 Startup.cs 中注册
services.AddSingleton<BarcodeService>();
在控制器里返回 File(barcodeService.Generate(code), "image/png"),前端即可直接显示或下载。
常见错误诊断与解决方案
- 字符超出范围:Code39 仅支持 A‑Z、0‑9、- $ % . / + 空格。若字符串包含其它字符,请切换到
EncodeTypes.Code39Extended,否则会抛出InvalidArgumentException。 - 条码过小导致扫描失败:建议最小宽度 ≥ 1.5 mm,条高 ≥ 10 mm;可通过
BarHeight与XDimension参数进行微调。 - 颜色对比度不足:深色条码配浅色背景是最佳实践,避免使用相近的颜色组合(如浅灰条码配白底)。
通过以上高级技巧,您可以在 .NET 环境下高效、可靠地生成 Code39 与完整 ASCII 条码,满足企业级标签、报表以及批量处理的各种需求。