了解如何在 .NET 应用程序中创建 Codabar 和 Code 11 条码,使用 Aspose.BarCode. 本指南涵盖安装、条代码生成步骤、自定义选项以及医疗保健和图书馆使用案例的最佳实践.
引入
这篇文章提供了一个详细的步骤,关于生成Codabar和代码11条码的医疗保健,图书馆,电信和包跟踪应用,使用Aspose.BarCode为 .NET.
什么是 Codabar 和 Code 11 Barcodes?
Codabar 是血液银行、图书馆和包服务中广泛使用的数字条码,支持 0-9 和 A-D 启动/停止符号.
快速启动(最小例子)
下面的最小例子表明如何创建一个Codabar条码:
using Aspose.BarCode.Generation;
var generator = new BarcodeGenerator(EncodeTypes.Codabar, "A123456B");
generator.Save("codabar-bloodbank.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;
BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.Codabar, "A123456B");
gen.Save("codabar-bloodbank.png", BarCodeImageFormat.Png);
第11章 例子:
BarcodeGenerator gen = new BarcodeGenerator(EncodeTypes.Code11, "12345-6789");
gen.Save("code11-telecom.png", BarCodeImageFormat.Png);
完整的例子
查看数字和定制选项
- 代码 11 检查数字:
csgen.Parameters.Barcode.Code11.EnableChecksum = true; - 酒吧高度/宽度:
csgen.Parameters.Barcode.BarHeight.Pixels = 80; gen.Parameters.Barcode.XDimension.Pixels = 2; - 色彩/背景:
csgen.Parameters.Barcode.BarColor = Color.MidnightBlue; gen.Parameters.Barcode.BackColor = Color.White; - 主条目:
csgen.Parameters.CaptionBelow.Visible = true;
定制条形码的出现
- 上面查看字符串高度、宽度和颜色
- 调整XDimension和BarHeight为标签大小
- 使用 SVG 或 PNG 为 crisp 打印
支持的输出格式
- PNG,JPEG,BMP — 印刷和数字
- TIFF — 档案或医学/实验室打印机
- SVG,EMF — 大规模或数字标签
麻烦解决与常见问题
行李箱不扫描?- 只使用有效的字符;确保适当的Start/Stop 符号为 Codabar.
检查错误吗?- 允许/禁用支票,以匹配扫描仪或应用程序的期望.
小标签不适合吗?- 低 BarHeight 和 XDimension.
FAQ
**Q:这些条码是否在现代医疗保健和图书馆中被接受?**答:是的,两者都在全球范围内用于遗产和新的工作流.**Q:我可以用 Codabar 编码文本吗?**A: No—Codabar 是 A-D 的数字,仅适用于启动/停止.
使用案例和应用程序
- 血液银行标签(Codabar)
- 图书馆与贷款管理
- 包和邮件跟踪
- 电信资产/存储(代码11)
最佳实践:快速参考表
| 提示 | 做 | 不要 |
|---|---|---|
| 卡车 | 编码: 0-9,A-D; 代码 11 : 0 - 9,- | 使用字母或符号 |
| 开始 / 停止 | 使用 A-D 为 Codabar | 忽略开始/停止字符 |
| 输出格式 | SVG/PNG 为 CRISP 输出 | 印刷低 JPG |
| 查看数字 | 如果工作流需要 | 可随机 |
结论
Codabar 和 Code 11 仍然对医疗保健、图书馆和遗产跟踪工作流至关重要 Aspose.BarCode API 参考 更多例子和选项.
深入条码参数细节
条码尺寸与分辨率控制
在实际生产环境中,标签的尺寸往往受限于打印机的分辨率以及标签纸的物理大小。使用 Aspose.BarCode 时,可以通过 BarHeight 与 XDimension 精确控制条码的高度和单元宽度。例如,在高密度标签(300 DPI)上,将 BarHeight 设置为 60 像素,XDimension 设置为 1 像素,即可得到约 0.2 mm 的条宽,满足大多数医院信息系统的要求。同时,如果需要更细的条纹以适配小尺寸 RFID 标签,可以将 XDimension 调整至 0.5 像素,并配合 BarHeight 的适当增大,确保可读性不受影响。
校验和与错误检测
Codabar 本身不提供内置校验和,但在某些业务场景下,会自行在数据末尾追加校验位以提升可靠性。Aspose.BarCode 提供 EnableChecksum 属性用于 Code 11 的校验和生成,对 Codabar 可通过自定义前置处理实现。示例代码如下:
var gen = new BarcodeGenerator(EncodeTypes.Code11, "1234567");
gen.Parameters.Barcode.Code11.EnableChecksum = true; // 开启校验和
gen.Save("code11-checksum.png", BarCodeImageFormat.Png);
对于 Codabar,如果业务需要校验,可以在生成前自行计算模 10 校验码并拼接到数据字符串中,这样扫描后即可进行一致性校验。
批量生成与性能优化
多线程生成示例
在大型医院或图书馆系统中,一次需要生成上千甚至上万条码。单线程循环会导致显著的性能瓶颈。利用 .NET 的 Parallel.ForEach 可以轻松实现并行生成,示例:
var codes = Enumerable.Range(1, 5000).Select(i => $"A{i:D6}B");
Parallel.ForEach(codes, code =>
{
var gen = new BarcodeGenerator(EncodeTypes.Codabar, code);
gen.Save($"./output/{code}.png", BarCodeImageFormat.Png);
});
此方式在四核 CPU 上可将生成时间从约 30 秒缩短至 8 秒左右,同时保持每个条码的完整配置。
与数据库集成
常见的做法是将条码信息存储在关系型数据库中,并在需要时即时生成。通过 ADO.NET 或 Entity Framework 读取记录,并在业务层调用 BarcodeGenerator 即可。例如:
using (var ctx = new LibraryContext())
{
var books = ctx.Books.Where(b => b.NeedsLabel);
foreach (var book in books)
{
var gen = new BarcodeGenerator(EncodeTypes.Codabar, $"B{book.Id:D8}E");
gen.Parameters.Barcode.BarHeight = 70;
gen.Save($"./labels/{book.Id}.png", BarCodeImageFormat.Png);
}
}
这样可以保证每本书的条码唯一且可追溯,并且在批量打印时无需手动干预。
常见错误诊断与调试技巧
- 条码不被扫描仪识别: 检查是否使用了正确的启动/停止字符,以及是否超出条码规范的字符集。可以通过
Parameters.Barcode.IsValid方法快速验证。 - 颜色对比度不足: 在浅色背景上使用深色条码,如
BarColor = Color.Black并确保BackColor为白色或淡色。 - 文件大小过大: 若生成 SVG 格式,文件体积极小且可无限放大;若必须使用位图,可通过
Resolution参数降低 DPI,在保持可读性的前提下降低文件体积。 - 多线程冲突: 确保每个线程使用独立的
BarcodeGenerator实例,不要共享同一实例,否则可能出现意外的图像混叠。
通过上述技巧,可以快速定位并解决大多数生产环境中的条码生成问题。