创建 GS1-128 (UCC/EAN-128) 供应链和符合 .NET 的条形码

本指南展示了如何为全球供应链、制药和监管遵守提供GS1-128(UCC/EAN-128)条码,使用Aspose.BarCode为 .NET.

引入

本指南展示了如何为全球供应链、制药和监管遵守提供GS1-128(UCC/EAN-128)条码,使用Aspose.BarCode为 .NET.

什么是GS1-128(UCC/EAN-128)条码?

GS1-128,也称为UCC/EAN-128 ,是一种标准化的1D条码,用于编码变量长度、结构化供应链数据与应用识别器(AI)。在物流、医疗保健、药店、食品和零售领域使用.

快速启动(最小例子)

using Aspose.BarCode.Generation;
var generator = new BarcodeGenerator(EncodeTypes.GS1Code128, "(01)09521234543213(10)ABC123");
generator.Save("gs1-128-shipment.png", BarCodeImageFormat.Png);

原則

  • Visual Studio 2019 或以后
  • .NET 6.0+ 或 .NET Framework 4.6.2+
  • Aspose.BarCode 为 .NET (NuGet)
  • 基本的C#知识
PM> Install-Package Aspose.BarCode 

步骤实施

using Aspose.BarCode.Generation;
// Example with GTIN-14 (01) and batch/lot (10)
BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.GS1Code128, "(01)09521234543213(10)ABC123");
gen.Save("gs1-128-shipment.png", BarCodeImageFormat.Png);

格式化应用识别器(AI)

  • 每個數據元素都以其 AI 開始,例如., (01), (17), (10), (21)
  • 对于变量长度(集合、彩票、序列)的字段,没有空间的 AI 组和数据,如果更多字符串跟踪,则使用 FNC1 结束(Aspose.BarCode 会自动这样做)
  • 例子:- 吉丁14: (01)09521234543213
  • 比特币 / 彩票: (10)ABC123
  • 延期: (17)250430

定制条形码的出现

  • 酒吧高度/宽度: csgen.Parameters.Barcode.BarHeight.Pixels = 100; gen.Parameters.Barcode.XDimension.Pixels = 3;
  • 色彩/背景: csgen.Parameters.Barcode.BarColor = Color.Black; gen.Parameters.Barcode.BackColor = Color.White;
  • 主条目: csgen.Parameters.CaptionBelow.Visible = true;

支持的输出格式

  • PNG,JPEG,BMP — 标准印刷和网页
  • TIFF — 高级/档案
  • SVG,EMF — 标签和包装的 vector

麻烦解决与常见问题

  • 带码不扫描或错误的数据?- 确保正确的AI合成,正确使用偏见,没有额外的空间.

  • 可变长度未分配的字段?- 确认适当的 FNC1 配置(由 Aspose.BarCode 自动处理为 GS1-128).

  • Too dense/large for 标签?- 调整XDimension或使用多角格式.

FAQ

**Q:如何编码多个数据字段?**A:混合多个AI数据对(例如., (01)...(10)...(17)...).**问: 药品和食品出口需要GS1-128条码吗?**答:是的,对于许多地区和行业来说,我们总是根据您的符合标准进行验证.

使用案例和应用程序

  • 全球供应链跟踪
  • 药品包/终止标签
  • 食品和饮料物流
  • 医疗保健设备遵守
  • 仓库和航运自动化

最佳实践:快速参考表

提示不要
AI 合成使用序列和正确的字段顺序使用空间或错过AI
领域格式化基于GS1 specs的AIs混合 GS1 和 Non-GS1 的数据
输出格式SVG/PNG/TIFF 符合标签包装低的JPG
Validation使用 GS1 兼容的扫描仪/软件测试假设所有扫描仪都准备好GS1

结论

GS1-128(UCC/EAN-128)对供应链、医疗保健和监管条形编码至关重要 Aspose.BarCode API 参考 为了更多.

深入了解 GS1-128 标准细节

GS1-128 不仅仅是条码的外观,它在数据结构上有严格的层级划分。每一个 AI(应用标识符)都有固定的长度或可变长度,且必须按照 GS1 官方手册规定的顺序出现。比如 GTIN(01)必须放在最前面,随后才是批次号(10)或有效期(17)。如果出现可变长度字段,必须在字段结束后自动插入 FNC1 分隔符,Aspose.BarCode 会在生成时自动处理,但开发者仍需确保字符串中没有多余的空格或非法字符。

与其他条码的比较

与 QR Code 的对比

QR Code 支持二维数据存储,容量远大于 GS1-128,但在物流行业仍然偏好一维条码,因为它们兼容现有的高速扫描设备。GS1-128 在包装上占用空间更小,且易于在纸质标签上印刷。选择哪种条码取决于业务需求:如果需要存储大量文本或 URL,QR Code 更合适;如果主要是 GTIN、批次号、有效期等结构化信息,GS1-128 是行业标准。

性能调优与最佳实践

XDimension 与条码密度

XDimension 决定了条码最小单元的宽度。过小会导致扫描器读取困难,过大则浪费标签空间。一般推荐在 0.25 mm ~ 0.33 mm 之间,根据打印机分辨率和标签材质进行微调。可以通过 gen.Parameters.Barcode.XDimension.Pixels 调整,并在不同打印机上进行实测。

多标签批量生成

在批量生成标签时,建议复用 BarcodeGenerator 实例,仅修改 CodeText 属性后再次调用 Save,可以显著提升性能。示例代码:

using Aspose.BarCode.Generation;
var gen = new BarcodeGenerator(EncodeTypes.GS1Code128, "");
foreach (var item in items)
{
    gen.CodeText = $"(01){item.GTIN}(10){item.Batch}(17){item.Expiry}";
    gen.Save($"label_{item.Id}.png", BarCodeImageFormat.Png);
}

兼容性验证

生成条码后,务必使用符合 GS1 标准的硬件扫描仪进行现场验证。不同地区的监管机构可能对 AI 的必填项有额外要求,例如欧盟对药品的序列号(21)强制要求。利用 Aspose.BarCode 的 Validate 方法可以在代码层面预先检查格式合法性,降低返工成本。

常见错误排查指南

  • 条码模糊或不完整:检查打印分辨率是否≥300 dpi,确保 XDimension 未低于 0.25 mm。
  • AI 顺序错误:使用 GS1 官方 AI 顺序表对照,确保 GTIN (01) 永远位于首位。
  • FNC1 缺失:在可变长度字段后未自动插入 FNC1,导致扫描器误读后续数据。使用 gen.Parameters.Barcode.IsGs1DataBar 或手动在字符串结尾添加 \x1D(ASCII 29)进行测试。

通过以上补充,开发者可以更深入地掌握 GS1-128 条码的生成细节,并在实际项目中实现高质量、符合监管要求的标签。

More in this category