我正在开发一个用于打印贴纸的简单应用程序,并且需要打印条形码。由于某些原因,我需要将条形码生成为文本而不是图像。条形码创建和打印就足够了,但是扫描仪无法识别这些条形码。
我正在使用JLabel
组件和系统条形码字体(IDAutomationHC39M, C39HrP24DhTt
)
用于创建条形码。扫描仪试图识别它(它自动切换到恒定激光模式),但没有结果。
条形码文字示例999-999999-9/9
所以,也许我错过了什么或做错了什么?
完整的解释或链接将不胜感激!
UPD代码示例
barcodeLabel = new JLabel("*"+hwb.getNumber()+"-1/1*");
Font f = new Font("IDAutomationHC39M",java.awt.Font.PLAIN,8);
barcodeLabel.setFont(f);
请忽略硬编码的“1/1”-仅用于测试。
UPD打印的条形码示例
某些更新
看起来很奇怪,但似乎问题出在扫描仪上-我尝试了激光扫描仪,但我的Android手机上的扫描仪应用程序却没有结果。我之所以称其为“奇怪”,是因为该扫描器之前曾成功处理过39码条形码。
现在,我已经尝试在自己的Android应用中使用基于zxing的扫描仪进行扫描,并且成功识别了该扫描仪。我将在接下来的几天中使用不同的扫描仪进行一些实验。
最后
我尝试在其他两个扫描仪(Metrologic和Symbol)上扫描这些条形码,它们显示出完美的结果-所有条形码均被成功识别。我认为所有问题都出在我便宜的扫描仪上-它可以很好地与激光打印机上打印的条形码配合使用,但是如果打印质量不理想-它就没有用。非常抱歉,由于这个愚蠢的设备和我自己的疏忽,我才开始话题。
无论如何,感谢所有评论者,话题可能已经关闭。
最佳答案
我尝试在其他两个扫描仪(Metrologic和Symbol)上扫描这些条形码,它们显示出完美的结果-所有条形码均被成功识别。我相信所有问题都出在我的廉价扫描仪上-它可以很好地与激光打印机上打印的条形码配合使用,但是如果打印质量不理想-它就没用了。因此,没有编程错误,只有硬件限制。
关于Java Swing条形码创建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14198237/