在 .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;可通过 BarHeightXDimension 参数进行微调。
  • 颜色对比度不足:深色条码配浅色背景是最佳实践,避免使用相近的颜色组合(如浅灰条码配白底)。

通过以上高级技巧,您可以在 .NET 环境下高效、可靠地生成 Code39 与完整 ASCII 条码,满足企业级标签、报表以及批量处理的各种需求。

More in this category