【发布时间】:2016-12-11 04:04:52
【问题描述】:
一位客户要求我为他们构建一个库存解决方案,他们会为所有办公设备打印条形码标签,以便以各种方式对其进行跟踪。
他们给了我一台 Citizen CL-S621 打印机(203x203 dpi 分辨率)用于测试,在配置驱动程序以打印并将所有内容安装到他们给我测试的非标准标签之后(这是最大的问题)我仍然遇到的是打印机无法以直线打印一些条,而是以虚线/点的形式打印它们。
下面的 C# 代码显示了我如何构建条形码 using this library 的基础知识:
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();
}
硬编码的宽度和高度是我发现的最佳近似值,即打印机可以接受并准确打印到标签上的良好图像尺寸,因为我必须用尺子测量它们的尺寸,并在打印机偏移和眼睛测量精度问题之间获得工作的大小被证明是麻烦的。
无论如何,我生成了一些条码,图像清晰、清晰,看起来还不错:
线条笔直清晰,文字清晰,一切看起来都很好; 但是当我去打印它们时,我得到:
有些条形打印出笔直清晰,而有些则边缘不规则,有些只是不规则的点/斜线/曲线图案。所有这些文本中的文本都存在相同的问题。我尝试了不同的字体大小和所谓的条形码友好字体,但问题仍然存在。如果我删除文本标签,问题仍然存在。
我觉得这是一个图像光栅化问题,但我不完全确定,也不知道如何解决。
我还不确定扫描仪是否可以读取这些内容,我明天会收到一份,但如果我提供任何关于我可能做错的提示,我们将不胜感激。
【问题讨论】:
-
您是否尝试过使用现有软件打印条形码?
-
我使用 Seagull Scientific 的“BarTender”进行了一次成功的测试,线条清晰清晰,文字也清晰。 BT 只允许商业许可证,而对于打印条形码这样基本的东西来说,那是一个昂贵的许可证......
标签: c# printing barcode barcode-printing