常见问题:Web 应用中的 TBarCode
在 ASP.NET 中提升标签打印机的条码打印质量
在 ASP.NET 中提升标签打印机的条码打印质量
如果您在浏览器中直接将条码打印到热敏标签打印机上,经常会遇到质量问题。条的宽度不一致,也没有适配输出分辨率。为避免条宽偏差,您需要在 96 dpi 的浏览器分辨率与 203 dpi 的打印机分辨率之间找到完全匹配的像素对应关系。对于一维条码,解决方案如下:
- 位图创建:以 203 dpi 和优化后的模块宽度(2 或 3 像素)创建条码位图。通过按需添加空白,使整个位图的宽度恰好为 3 或 4 英寸(= 3 * 203 像素 或 4 * 203 像素)。
- 位图缩放:在浏览器中显示条码图像时,宽度需恰好为 3 或 4 英寸(= 3 * 203 像素 或 4 * 203 像素),具体取决于您在创建位图时所选的数值。
- 这样便可生成一个与 203 dpi 网格像素对齐、可读性良好的条码。
以下 ASP.NET C# 代码展示了如何使用 TBarCode .NET 实现这一优化。
double dpi = 203; // printer resolution (8 lines/mm) int numberOfPixels = 3; // number of pixels for 1 module (= 0.375 mm) double moduleWidth = numberOfPixels * 25.4 / dpi; // module width in mm BCControl.Barcode.Dpi = dpi; // 1 bitmap pixel = 1 module BCControl.Barcode.SizeMode = TECIT.TBarCode.SizeMode.CustomModuleWidth; BCControl.Barcode.ModuleWidth = (float) (moduleWidth + 0.001); BCControl.Barcode.AdjustModuleWidthToPixelRaster = true; BCControl.Width = new Unit(96 * 4, UnitType.Pixel); // always a multiple of 96 !!!
打印条码时,请确保已禁用浏览器缩放(或将其设置为 100%)。同时请确保打印机驱动程序中已禁用图像抖动或半色调处理。