一个客户让我为他们建立一个库存解决方案,他们将打印条形码标签以跟踪各种办公设备的情况。他们给了我一台 Citizen CL-S621 打印机(203x203 dpi 分辨率)进行测试,然后(噩梦般的)配置其驱动程序和适应非标准标签,最大的问题仍然是打印机很难将某些条形码直线打印,而是以虚线/点线形式打印。以下 C# 代码显示了我如何使用此库构建条形码的基础知识 (使用此库):
硬编码的宽度和高度是我发现的最佳图像尺寸的近似值,打印机可以接受并准确地打印到标签上,因为我不得不用尺子测量它们的大小,并且由于打印机偏移和眼睛测量精度问题,获得可行的大小证明很棘手。
无论如何,我生成了一些条形码,图像清晰、清晰,看起来相当不错:
public void CreateTheBarcode(string StringToEncode)
{
Barcode b = new Barcode();
b.LabelFont = new Font("Sample Bar Code Font", 24, FontStyle.Bold);
b.IncludeLabel = true;
b.Encode(BarcodeLib.TYPE.CODE128, StringToEncode, Color.Black, Color.White, 730, 140);
b.SaveImage(@"C:\temp\Barcodes\"+StringToEncode+".png",SaveTypes.PNG);
Print(@"C:\temp\Barcodes\"+StringToEncode+".png");
}
public static void Print(string FilePath)
{
Process printJob = new Process();
printJob.StartInfo.FileName = FilePath;
printJob.StartInfo.UseShellExecute = true;
printJob.StartInfo.Verb = "printto";
printJob.StartInfo.CreateNoWindow = false;
printJob.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
printJob.StartInfo.Arguments = "\"" + "Citizen CL-S621" + "\"";
printJob.StartInfo.WorkingDirectory = Path.GetDirectoryName(FilePath);
printJob.Start();
}
硬编码的宽度和高度是我发现的最佳图像尺寸的近似值,打印机可以接受并准确地打印到标签上,因为我不得不用尺子测量它们的大小,并且由于打印机偏移和眼睛测量精度问题,获得可行的大小证明很棘手。
无论如何,我生成了一些条形码,图像清晰、清晰,看起来相当不错:
这些线条直且清晰,文本也很锐利,看起来一切都很好;但是当我想打印它们时,出现了以下问题:
一些条形码打印得很直,很清晰,而有些则具有不规则的边缘和点/斜杠/曲线图案。所有条形码的文本都存在相同的问题。我尝试了不同的字体大小和专为条形码设计的字体,但问题仍然存在。即使我删除文本标签,问题仍然存在。这似乎是图像光栅化问题,但我并不确定,也不知道如何解决。明天我会收到一个扫描仪,我还不确定它是否能读取这些条形码,但如果您有任何关于我可能做错的提示,我将不胜感激。