条形码(Code 39)生成

5
我一直在寻找解决方案,目前我认为最适合我的项目的是使用免费的Code 39字体。然而,我尝试打印一些样本,但我的条形码扫描仪无法读取它们。
我进行了更多的研究,偶然发现了这个链接
我使用该库打印了Code 39条形码,扫描仪可以很好地读取它们。
问题是,该库是用C#编写的,但不是为ASP.net设计的。我尝试修改代码,但对于我基本的知识水平来说太复杂了。该库代码包含了许多函数和其他条形码类型,使得分析更加困难。
是否有其他方法生成Code 39条形码?codeprojec中的库对我的要求似乎有点太复杂了。

3
你确定问题是发电机吗?条形码扫描仪需要编程以接受不同的条形码类型,而且读取条形码的能力除了编程之外,还取决于打印质量以及确保调整图像大小时比例相同。曾经我们在线提供的优惠券具有标准的UPC条形码,但很多客户的打印机设置低于质量要求,因此同一条形码只有大约50%的成功率,所以我们放弃在网站上使用它们。我们无法控制客户端的电脑/打印机设置。 - David
嗨,我也尝试过使用几个移动条形码阅读器应用程序,它们仍然无法读取由免费code39字体生成的条形码。 (http://www.squaregear.net/fonts/free3of9.shtml) 但是,当我尝试使用这个库(http://www.codeproject.com/KB/graphics/BarcodeLibrary.aspx)来生成条形码时,阅读器应用程序可以读取它。 - Pod Mays
@PodMays 如果您从Code39字体和库中打印条形码,它们看起来完全一样吗?两个图像都有锐利的边缘吗? - rsbarro
2个回答

7

条码扫描仪需要在您的Code 39条形码前缀和后缀处加上星号才能读取。例如:*12345*


这在技术上是正确的,但我发现至少有一种医用设备不知道这一点,你必须专门创建无效的Code39条形码才能让它扫描。 - Tremmors
这让我省了一些时间:) - Nassif Bousaba
非常感谢。 - Vijay Kumbhoje

2
首先,你说这个库不是为ASP.NET编写的,但如果你可以用它生成图像,那么最简单的方法就是编写一个HttpHandler,它位于该库的上方并将生成的图像返回给浏览器。如果它是一个.NET库,我不认为有任何理由不能工作。
话虽如此,在生成Code39条形码时要注意以下几点:
1.您是否生成了有效的Code39条形码(请参见其他答案,Code39条形码应以*开头和结尾)?
2.您打印的条形码是否足够清晰以便进行扫描?
对于第一点,我会检查您从Code39字体中打印的图像是否与库中的图像相同。如果是,那么图像质量可能是问题所在。
至于第二点,我曾经成功地使用免费的Code 39字体和GDI+生成条形码图像,然后在HTML页面中显示这些图像进行打印。当我尝试扫描打印的条形码图像时遇到的一个问题是图像不够清晰(条形码线的边缘模糊),扫描仪无法读取。
我解决低质量图像的方式是生成大型Code39条形码图像(例如1000 x 400),然后在显示该条形码的标签上,我会将宽度设置为更小的值,例如(200px或2.0英寸)。我只设置宽度,高度将与图像成比例缩放。这将在打印时有效地增加图像的DPI,使我们能够生成易于扫描的条形码图像(特别是如果您使用激光打印机进行打印)。
编辑
几乎忘了,生成这些条形码时使用的另一个好的方法是始终在条形码图像下面打印您要编码的内容。如果条形码图像由于任何原因无法扫描,则可以使用此方法作为备用计划。如果查看任何标准UPC符号,您可以看到底部的数字正是扫描时条形码读取的内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接